輕松學習C#的foreach迭代語句
C#語言提供的foreach語句是一個for語句循環(huán)的捷徑,而且還促進了集合類的更為一致,先來看看它的定義格式:
foreach語句的定義格式為:
foreach(類型 變量 in 集合)
{
子語句;
}
每執(zhí)行一次內(nèi)嵌語句,循環(huán)變量就依次取集合中的一個元素代入其中,在這里,循環(huán)變量是一個只讀型局部變量,如試圖改變其值將會發(fā)生編譯錯誤。
foreach語句用于列舉出集合中所有的元素,foreach語句中的表達式由關(guān)鍵字in隔開的兩個項組成。in右邊的項是集合名,in左邊的項是變量名,用來存放該集合中的每個元素。
foreach語句的優(yōu)點一:語句簡潔,效率高。
用一個遍歷數(shù)組元素的例子來說明:
先用foreach語句來輸出數(shù)組中的元素:
<span style="font-size:18px;"> int[,] ints =new int[2,3]{{1,2,3},{4,5,6}}; foreach (int temp in ints) { Console.WriteLine(temp); } Console.ReadLine();</span>
再用for語句輸出數(shù)組中元素:
<span style="font-size:18px;"> int[,] ints =new int[2,3]{{1,2,3},{4,5,6}}; for (int i = 0; i < ints.GetLength(0); i++) { for (int j = 0; j < ints.GetLength(1); j++) { Console.WriteLine(ints[i,j]); } } Console.ReadLine();</span>
這兩種代碼執(zhí)行的結(jié)果是一樣的都是每行一個元素,共6行,元素分別是1 2 3 4 5 6。
在一維數(shù)組中還無法體現(xiàn)出foreach語句的簡潔性,高效率性,但是在二維數(shù)組,甚至多維數(shù)組中體現(xiàn)的更為明顯和方便,所以在C#語言中要用循環(huán)語句提倡使用foreach語句。
foreach語句的優(yōu)點二:避免不必要的因素
在C#語言中使用foreach語句不用考慮數(shù)組起始索引是幾,很多人可能從其他語言轉(zhuǎn)到C#的,那么原先語言的起始索引可能不是1,例如VB或者Delphi語言,那么在C#中使用數(shù)組的時候就難免疑問到底使用0開始還是用1開始呢,那么使foreach就可以避免這類問題。
foreach語句的優(yōu)點三:foreach語句自動完成類型轉(zhuǎn)換
這種體現(xiàn)可能通過如上的例子看不出任何效果,但是對于ArrayList之類的數(shù)據(jù)集來說,這種操作就顯得比較突出。
先用foreach語句來實現(xiàn)類型轉(zhuǎn)換操作:在使用ArrayList類時先要引入using System.Collections;
<span style="font-size:18px;"> int[] a=new int[3]{1,2,3}; ArrayList arrint = new ArrayList(); arrint.AddRange(a); foreach (int temp in arrint) { Console.WriteLine(temp); } Console.ReadLine();</span>
再來使用for語句來實現(xiàn):需要進行顯式的強制轉(zhuǎn)換
<span style="font-size:18px;"> int[] a=new int[3]{1,2,3}; ArrayList arrint = new ArrayList(); arrint.AddRange(a); for (int i = 0; i < arrint.Count;i++ ) { int n = (int)arrint[i]; Console.WriteLine(n); } Console.ReadLine();</span>
兩個程序輸出的結(jié)果為:每一行一個元素,分別為1,2,3。
foreach語句對于string類更是簡潔:
<span style="font-size:18px;">using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace @foreach { class Program { static void Main(string[] args) { string str = "This is an example of a foreach"; foreach (char i in str) { if (char.IsWhiteSpace(i)) { Console.WriteLine(i);//當i為空格時輸出并換行 } else { Console.Write(i);//當i不為空格時只是輸出 } } Console.ReadLine(); } } }</span>
輸出的結(jié)果為:每一行一個單詞,分別為This, is ,an ,example ,of ,a ,foreach。
對于foreach語句的理解,目前也就知道這多了,隨著更深層次的學習,或許會有更好的理解吧。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助。
欄 目:C#教程
下一篇:使用C#代碼獲取存儲過程返回值
本文標題:輕松學習C#的foreach迭代語句
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6838.html
您可能感興趣的文章
- 01-10C#通過反射獲取當前工程中所有窗體并打開的方法
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#停止線程的方法
- 01-10WinForm實現(xiàn)仿視頻播放器左下角滾動新聞效果的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當前操作系統(tǒng)已安裝軟件變化的方法
- 01-10C#實現(xiàn)多線程下載文件的方法


閱讀排行
本欄相關(guān)
- 01-10C#通過反射獲取當前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻播放器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當前操作系統(tǒng)已
隨機閱讀
- 04-02jquery與jsp,用jquery
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法實例總結(jié)
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10使用C語言求解撲克牌的順子及n個骰子