可计算<T>的预测值的Linq等价

可计算<T>的预测值的Linq等价

我想在LINQ中做相当于以下内容的操作,但我不知道如何做到这一点:

IEnumerable<Item> items = GetItems();items.ForEach(i => i.DoStuff());

真正的语法是什么?


largeQ
浏览 438回答 3
3回答

隔江千里

没有ForEach扩展IEnumerable;只为List<T>..所以你可以items.ToList().ForEach(i&nbsp;=>&nbsp;i.DoStuff());或者,编写自己的ForEach扩展方法:public&nbsp;static&nbsp;void&nbsp;ForEach<T>(this&nbsp;IEnumerable<T>&nbsp;enumeration,&nbsp;Action<T>&nbsp;action){ &nbsp;&nbsp;&nbsp;&nbsp;foreach(T&nbsp;item&nbsp;in&nbsp;enumeration) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;action(item); &nbsp;&nbsp;&nbsp;&nbsp;}}

炎炎设计

Fredrik已经提供了修复,但它可能值得考虑为什么这不是在框架中开始。我认为,LINQ查询操作符应该是无副作用的,符合一个合理的功能方式来看待世界。显然,ForEach正好相反-a纯基于副作用的构造。这并不是说这是一件坏事-只是想想这个决定背后的哲学原因。
打开App,查看更多内容
随时随地看视频慕课网APP