受到另一个询问缺失Zip功能的问题的启发:
Zip
为什么界面上没有ForEach扩展方法?IEnumerable还是在任何地方?唯一获得ForEach方法的类是List<>. 是否有它丢失的原因,也许是性能?
ForEach
IEnumerable
List<>
语言中已经foreach包含一个语句,大部分时间都可以完成这项工作。
foreach
我不想看到以下内容:
list.ForEach( item => { item.DoSomething(); } );
代替:
foreach(Item item in list) { item.DoSomething(); }
后者在大多数情况下 更清晰、更容易阅读,尽管打字时间可能会更长。
但是,我必须承认我在这个问题上改变了立场;在ForEach()某些情况下,扩展方法确实很有用。
ForEach()
以下是语句和方法之间的主要区别:
这些都是这里很多人提出的重要观点,我可以理解为什么人们缺少这个功能。我不介意微软在下一次框架迭代中添加标准的 ForEach 方法。