for迴圈與foreach的區別

2022-06-28 22:15:18 字數 1051 閱讀 3755

for迴圈與foreach的區別

foreach 依賴 ienumerable.

第一次 var a in getlist() 時 呼叫 getenumerator 返回第乙個物件 並 賦給a,

以後每次再執行 var a in getlist() 的時候 呼叫 movenext.直到迴圈結束.

期間getlist()方法只執行一次.12

3456

78910

1112

13foreach(vara in getlist())

=

vara;

ienumerator  e  =  getlist().getenumerator();

while(e.movenext)

for 迴圈靠下標定位.    list[3] 相當於 *(list + 3).12

3456

78910

1112

13for(int i = 0; i < getcount(); i++)

=

int i = 0;

while(i < getcount())

or 迴圈每次迴圈會呼叫 getcount() 來比較長度. 而 foreach 不考慮長度,只呼叫一次getlist().

結論.在固定長度或長度不需要計算的時候for迴圈效率高於foreach.

在不確定長度,或計算長度有效能損耗的時候,用foreach比較方便.

並且foreach的時候會鎖定集合中的物件.期間不能修改.

for迴圈與foreach的區別

首先說一下foreach有的也叫增強for迴圈,foreach其實是for迴圈的乙個特殊簡化版。再說一下foreach的書寫格式 for 元素型別 元素名稱 遍歷陣列 集合 或者能進行迭代的 用for迴圈的話就會麻煩很多 複製 public static void main string args ...

for迴圈與foreach的區別

for迴圈與foreach的區別 foreach 依賴 ienumerable.第一次 var a in getlist 時 呼叫 getenumerator 返回第乙個物件 並 賦給a,以後每次再執行 var a in getlist 的時候 呼叫 movenext.直到迴圈結束.期間getlis...

js中的forEach迴圈與map迴圈

在js中進行陣列迴圈時經常會用到foreach方法和map方法,下面就來看一下這兩種遍歷方法的區別。vararray 1,2,3,4,5 var array1 array.foreach function val vararray2 array.map function val console.lo...