迴圈風格

最瑣碎的迴圈型別。唯一的缺點是沒有內在的線索知道你在迴圈中的位置。

/// loop while the condition satisfies
while(condition)
{
    /// do something
}

while 類似,但是在迴圈結束時而不是在開始時評估條件。這導致至少執行一次迴圈。

do
{
    /// do something
} while(condition) /// loop while the condition satisfies

對於

另一種瑣碎的迴圈風格。迴圈索引(i)會增加,你可以使用它。它通常用於處理陣列。

for ( int i = 0; i < array.Count; i++ )
{
    var currentItem = array[i];
    /// do something with "currentItem"
}

foreach

迴圈通過 IEnumarable 物件的現代化方式。好的事情是你不必考慮專案的索引或列表的專案計數。

foreach ( var item in someList )
{
    /// do something with "item"
}

Foreach 方法

雖然其他樣式用於選擇或更新集合中的元素,但此樣式通常用於立即為集合中的所有元素呼叫方法

list.ForEach(item => item.DoSomething());

// or
list.ForEach(item => DoSomething(item));

// or using a method group
list.ForEach(Console.WriteLine);

// using an array
Array.ForEach(myArray, Console.WriteLine);

重要的是要注意,此方法僅在 List<T> 例項上可用,並且作為 Array 上的靜態方法 - 它不是 Linq 的一部分。

Linq Parallel Foreach

就像 Linq Foreach 一樣,除了這個以平行方式完成工作。這意味著集合中的所有專案將同時執行給定的操作。

collection.AsParallel().ForAll(item => item.DoSomething());

/// or
collection.AsParallel().ForAll(item => DoSomething(item));