一、foreach迴圈的優勢
c#支援foreach關鍵字,foreach在處理集合和陣列相對於for存在以下幾個優勢:
1、foreach語句簡潔
2、效率比for要高(c#是強型別檢查,for迴圈對於陣列訪問的時候,要對索引的有效值進行檢查)
3、不用關心陣列的起始索引是幾(因為有很多開發者是從其他語言轉到c#的,有些語言的起始索引可能是1或者是0)
4、處理多維陣列(不包括鋸齒陣列)更加的方便,**如下:
int[,] nvisited =,,};//
use "for" to loop two-dimension array(使用for迴圈二維陣列)
console.writeline("
user 'for' to loop two-dimension array");
for (int i = 0; i < nvisited.getlength(0); i++)
for (int j = 0; j < nvisited.getlength(1); j++)
console.write(nvisited[i, j]);
console.writeline();
//use "foreach" to loop two-dimension array(使用foreach迴圈二維陣列)
foreach只用一行**就將所有元素迴圈了出來,而for迴圈則就需要很多行**才可以.
注:foreach處理鋸齒陣列需進行兩次foreach迴圈
int nvisited = newint[3
];nvisited[
0] = new
int[3] ;
nvisited[
1] = new
int[3] ;
nvisited[
2] = new
int[6] ;
//use "foreach" to loop two-dimension array(使用foreach迴圈二維陣列)
5、在型別轉換方面foreach不用顯示地進行型別轉換
int val = ;6、當集合元素如list等在使用foreach進行迴圈時,每迴圈完乙個元素,就會釋放對應的資源,**如下:arraylist list = new
arraylist();
list.addrange(val);
foreach (int item in list)//
在迴圈語句中指定當前正在迴圈的元素的型別,不需要進行拆箱轉換
console.writeline();
for (int i = 0; i < list.count; i++)
using (ienumeratorenumerator =collection.getenumerator())二、foreach迴圈的劣勢}
1、上面說了foreach迴圈的時候會釋放使用完的資源,所以會造成額外的gc開銷,所以使用的時候,請酌情考慮
2、foreach也稱為唯讀迴圈,所以再迴圈陣列/集合的時候,無法對陣列/集合進行修改。
3、陣列中的每一項必須與其他的項型別相等.
C foreach迴圈例項詳解
在編寫c 時,我們會發現使用foreach迴圈會比使用for迴圈方便,不需要進行資料型別的強制轉換,不需要使用下標 通過幫助文件的檢視可知,如果要對乙個物件使用foreach進行迴圈的話則此物件的型別必須擁有getenumerator方法,此方法是在ienumerable介面下的,但是否實現此介面無...
運用c foreach迴圈顯示
慣例 我是溫浩然 先說一下兩種的區別,上圖,改版之前。後來的效果是 很明顯的,後來的是分組織結構顯示的,這裡用到的技術,就是c標籤 先貼 foreach中巢狀if其中再巢狀foreach。後台傳到前台的是babystages這個list集合,在前台中,通過c foreach來進行迴圈解析,就會生出第...
c foreach遍歷迴圈List
在jsp中如何用jstl的c foreach遍歷元素是map型別的list?request中有個 admin.dealers 屬性,是個元素是map型別的list,其傎如下所示 在jsp中如何用jstl的c foreach遍歷所有的dealerid與dealername?解決方案 遍歷的物件實際上是...