LINQ - 在linq查询中加入列表

时间:2009-09-15 12:32:56

标签: c# linq addrange

问题是如何在不诉诸下面代码类型的情况下返回所有父母子女中所有实体的B列表,我以为你必须能够在单个linq查询中实现相同的目标?

Class Parent {
    public Title,
    public children List<B>,
}

data = List<A>

var childLists = from x in x.Parents select x.children;             
List<B> output = new List<B>();

foreach (List<B> b in childLists)
    output.AddRange(b);

感谢。

3 个答案:

答案 0 :(得分:4)

List<B> allChildren = x.Parents.SelctMany(p => p.children).ToList()

答案 1 :(得分:3)

var output = x.Parents.SelectMany(p => p.children).ToList();

答案 2 :(得分:1)

使用嵌套

from parent in x.Parents 
  from child in parent.Children 
  select child;