for迴圈與foreach的區別

2021-09-27 02:25:33 字數 1611 閱讀 6618

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...