【问题标题】:Linq - operating on lists of listsLinq - 对列表列表进行操作
【发布时间】: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){}

【问题讨论】:

    标签: c# linq list lambda


    【解决方案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 的方式,只是想在这里作为参考
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    相关资源
    最近更新 更多