Linq - 对列表列表进行操作
Posted
技术标签:
【中文标题】Linq - 对列表列表进行操作【英文标题】:Linq - operating on lists of lists 【发布时间】:2011-11-21 02:27:27 【问题描述】:我有一个类A
的列表,类A
包含一个类B
的列表。我想在类A
的所有实例中对B
的所有实例进行操作。
var myListOfA = new List<A>();
class A
public List<B> ListOfB;
如何遍历所有B
,即foreach(var b in myListOfA.ListOfB)
?
【问题讨论】:
【参考方案1】:你可以使用SelectMany:
foreach(var b in myListOfA.SelectMany(a => a.ListofB))
在ideone.com查看它的实际应用。
【讨论】:
啊,我试过Select
没用(现在看来很明显),当场。谢谢。【参考方案2】:
我认为嵌套对象的另一种方法是:
(from A objA in myListOfA
from B objB in objA.ListOfB
select objB);
这将“扇出”主列表中所有 a 中的 b 列表。
【讨论】:
请注意,这是SelectMany
的语法糖,但我同意,它有时更具可读性。
是的,这绝对是另一种使用 selectmany 的方式,只是想在这里作为参考以上是关于Linq - 对列表列表进行操作的主要内容,如果未能解决你的问题,请参考以下文章