可能重複:
爲IEnumerable的
LINQ equivalent of foreach for IEnumerable<T>現有的類似於Parallel.For的LINQ擴展方法?
LINQ的擴展方法是,如果你想要做的是應用一些計算每個項目中非常方便......但沒有多大用處枚舉不返回任何東西。所以我想知道如果也許我只是錯過了正確的方法,或者如果它真的不存在,我寧願使用內置版本,如果它可用...但我還沒有找到一個:-)
我可以發誓在那裏有一個.ForEach方法,但我還沒有找到它。在此期間,我沒有的情況下,寫我自己的版本,它是爲別人有用:
using System.Collections;
using System.Collections.Generic;
public delegate void Function<T>(T item);
public delegate void Function(object item);
public static class EnumerableExtensions
{
public static void For(this IEnumerable enumerable, Function func)
{
foreach (object item in enumerable)
{
func(item);
}
}
public static void For<T>(this IEnumerable<T> enumerable, Function<T> func)
{
foreach (T item in enumerable)
{
func(item);
}
}
}
用法是:
myEnumerable.For<MyClass>(delegate(MyClass item) { item.Count++; });
CF埃裏克利珀的答案在這裏:http://blogs.msdn.com/ericlippert/archive/2009 /05/18/foreach-vs-foreach.aspx – Benjol 2009-05-19 05:59:58