2016-03-30 8 views
1

Ich habe diesen Wert von Linq-Anweisung zurückgegeben.Extra Enumeration Wrappers .net

IEnumerable<IQueryable<IEnumerable<IList<MyDomain>>>> 

Gibt es eine Möglichkeit abzustreifen alle zusätzlichen IEnumerable<IQueryable<IEnumerable< so habe ich IList<MyDomain> gerade?

+4

die Erweiterungsmethode verwenden [ 'SelectMany'] (https://msdn.microsoft.com/en-us/ library/system.linq.enumerable.selectmany (v = vs.100) .aspx) um alle inneren Sequenzen zu verketten. – rexcfnghk

+0

danke das war der richtige anwer. Wenn Sie antworten, werde ich die Frage richtig beantworten – ChampChris

Antwort

1

können Sie die Erweiterungsmethode verwenden SelectMany

Ein Beispiel könnte sein:

IEnumerable<IQueryable<IEnumerable<IList<MyDomain>>>> domains = GetDomains(); 

IList<MyDomain> concatenatedDomains = domains.SelectMany(a => 
              a.SelectMany(b => 
               b.SelectMany(
                c => c.Select(d => 
                 d))).ToList(); 
// OR 
IList<MyDomain> concatenatedDomains = (from a in domains 
             from b in a 
             from c in b 
             from d in c 
             select d).ToList()