我有一个查询,在此期间我想修改我的项目并继续查询。
a.SelectMany(a => a.B)
.Where(b => b.cList.All(c => !c.IsSelected))
//I want to run foreach between those lines to set flag on b=>b.Flag = true
.SelectMany(b => b.cList)
.ForEach(c => c.IsSelected = true;);
问题是我想修改我的b
并继续进一步的投影。这在一个LINQ查询中可以实现吗?
2条答案
按热度按时间9rbhqvlz1#
你可以做一些有副作用的预测。这通常不是一个好主意(因为LINQ被设计成功能更强大),但是很容易做到:
或者您可以编写自己的扩展方法来使它更清楚:
xeufq47z2#
这个方法也可以工作,但是要小心
ToList()
方法引起的性能问题。