Linq - 在列表列表上运行

时间:2011-09-20 13:24:51

标签: c# linq list lambda

我有一个班级A的列表,班级A包含班级B的列表。我希望在类B的所有实例中对A的所有实例进行操作。

var myListOfA = new List<A>();

class A
{
    public List<B> ListOfB;
}

如何迭代所有B,即foreach(var b in myListOfA.ListOfB){}

2 个答案:

答案 0 :(得分:9)

您可以使用SelectMany

foreach(var b in myListOfA.SelectMany(a => a.ListofB))

ideone.com看到它的实际效果。

答案 1 :(得分:2)

另一种适用于我如何看待嵌套对象的方法是:

(from A objA in myListOfA
    from B objB in objA.ListOfB
        select objB);

这将“扇出”主列表中所有a的b列表。