循环风格

最琐碎的循环类型。唯一的缺点是没有内在的线索知道你在循环中的位置。

/// 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));