如何解决为什么 IEnumerable 上没有 ForEach 扩展方法?
语言中已经foreach
包含一个语句,大部分时间都可以完成这项工作。
我不想看到以下内容:
list.ForEach( item =>
{
item.DoSomething();
} );
代替:
foreach(Item item in list)
{
item.DoSomething();
}
更清晰、更容易阅读,尽管打字时间可能会更长。
但是,我必须承认我在这个问题上改变了立场;在ForEach()
某些情况下,扩展方法确实很有用。
- 类型检查:foreach 在运行时完成,
ForEach()
在编译时完成(Big Plus!) - 调用委托的语法确实简单得多:objects.ForEach(DoSomething);
- ForEach() 可以被链接起来:尽管这种功能的邪恶/有用性有待讨论。
这些都是这里很多人提出的重要观点,我可以理解为什么人们缺少这个功能。我不介意微软在下一次框架迭代中添加标准的 ForEach 方法。
解决方法
受到另一个询问缺失Zip
功能的问题的启发:
为什么界面上没有ForEach
扩展方法?IEnumerable
还是在任何地方?唯一获得ForEach
方法的类是List<>
.
是否有它丢失的原因,也许是性能?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。