Linq: List of lists to a long list

后端 未结 2 999
无人及你
无人及你 2020-12-09 02:27

I\'ve got an object of type A which consists of a list of objects of type B:

class A { list Alist;}
class B { string C; st         


        
相关标签:
2条回答
  • 2020-12-09 02:48

    I too would have had a similar answer, my only modification was to add the where clause to avoid having empty strings (where C is empty):

    listOfA.SelectMany( a => a.AList, (a, b) => b.C ).Where( c => c.Length > 0 );
    
    0 讨论(0)
  • 2020-12-09 02:49

    ybo's answer would have been my first response too. The query expression equivalent of this is:

    var query = from a in computeAList()
                from b in a.Alist
                select b.C;
    

    For the sake of completeness, the other answers in this thread are variations on the same theme.

    From ybo (the exact same query, expressed as dot notation):

    var query = listOfA.SelectMany(a => a.Alist, (a, b) => b.C);
    

    From Ray Hayes (including the Where clause; I've reformatted slightly):

    var query = listOfA.SelectMany(a => a.AList, (a, b) => b.C)
                       .Where(c => c.Length > 0);
    
    0 讨论(0)
提交回复
热议问题