ForEach — where are you?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Why is there not a ForEach extension method on the IEnumerable interface?
号
我喜欢C中list
为什么我必须调用.tolist()我的集合才能对每个元素调用操作?请告诉我为什么?谢谢您。
1 | List<T>.ForEach(Action<T> action); |
语言集成查询(LINQ)。不是语言集成扩展(谎言)。
您特别提到的是Linq to对象。其他Linq(到SQL、到XML)等在实现任意逻辑时会遇到更多的困难。
但是,没有什么能阻止你自己实现它。
1 2 3 4 5 6 7 8 9 10 | public static class Extensions { public static void ForEach<T> (this IEnumerable<T> items, Action<T> action) { foreach (T item in items) { action (item); } } } |
关于这个话题有很多讨论:
见:
- ienumerable的foreach的linq等价物
- 使用foreach子句的lambda表达式