可能重复:
Why is there not a ForEach extension method on the IEnumerable interface?
我喜欢List< T>上的.ForEach方法在C#中。这怎么不是IEnumerable< T>上的扩展方法套件之一?
为什么我必须调用.ToList()我的集合才能在每个元素上调用一个动作?请告诉我为什么?谢谢。
List<T>.ForEach(Action<T> action);
答案 0 :(得分:3)
语言已整合查询(LINQ)。不是语言集成扩展(LIE)。
您特别谈到LINQ到对象。其他LINQ(to-SQL,to-XML)等在实现任意逻辑时会遇到更多麻烦。
但是,没有什么能阻止你自己实现它。
public static class Extensions
{
public static void ForEach<T> (this IEnumerable<T> items, Action<T> action)
{
foreach (T item in items)
{
action (item);
}
}
}
答案 1 :(得分:1)