2009-09-15 8 views
0

Question est comment faire une liste de B avec toutes les entités dans les enfants de tous les parents sans recourir au type de code ci-dessous, je pensais que vous devez être en mesure d'atteindre le même dans une seule requête linq?LINQ - Rejoindre des listes dans une requête 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); 

Merci.

Répondre

4
List<B> allChildren = x.Parents.SelctMany(p => p.children).ToList() 
3
var output = x.Parents.SelectMany(p => p.children).ToList(); 
1

utilisant la nidification

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

Pour être clair, je voudrais envelopper les querys imbriquées dans parens. – RCIX