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 - 对列表列表进行操作的主要内容,如果未能解决你的问题,请参考以下文章

LINQ:根据某些条件过滤项目列表,并按条件执行某些操作

使用 Linq 按名称频率对列表进行排序

如何使用 LINQ 使用嵌套属性对列表进行排序

SharePoint服务器端对象模型 之 使用LINQ进行数据访问操作(Part 3)

如何在 Linq C# 中使用嵌套字典对列表进行排序?

是否可以根据这些对象的参数对自定义类对象列表进行子集化? (没有 LINQ)