LINQ - объединение списков в запросе linq - PullRequest
0 голосов
/ 15 сентября 2009

Вопрос в том, как вернуть список 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 ]

4 голосов
/ 15 сентября 2009
List<B> allChildren = x.Parents.SelctMany(p => p.children).ToList()
3 голосов
/ 15 сентября 2009
var output = x.Parents.SelectMany(p => p.children).ToList();
1 голос
/ 15 сентября 2009

с использованием вложенности

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