for迴圈與foreach的區別
foreach 依賴 ienumerable.
第一次 var a in getlist() 時 呼叫 getenumerator 返回第乙個物件 並 賦給a,
以後每次再執行 var a in getlist() 的時候 呼叫 movenext.直到迴圈結束.
期間getlist()方法只執行一次.
1
2
3
4
5
6
7
8
9
10
11
12
13
foreach
(
var
a in getlist())
=
var
a;
ienumerator e = getlist().getenumerator();
while
(e.movenext)
for 迴圈靠下標定位. list[3] 相當於 *(list 3).
1
2
3
4
5
6
7
8
9
10
11
12
13
for
(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...