用于 ienumerable 的 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++; });