2014-12-21 227 views
0
訪問的IEnumerable

我已經在Visual Studio 2013下面的代碼:麻煩Linq中

IEnumerable<Brouwer> brouwers = Bierhalle.GetBrouwers(); 

每個布勞威爾有啤酒的列表。

現在我需要從每個Brouwer獲得該列表,並打印該列表。

所以我有這樣打印出來的啤酒:

private static void PrintBieren(IEnumerable<Bier> bieren) 
     { 
      foreach (Bier b in bieren) 
       Console.WriteLine(b.Naam + " - " + b.AlcoholPercentage); 
     } 

但我怎麼能得到啤酒該名單?我該如何命名呢?

我現在有這個,但是這會產生一個IList,我需要的IEnumerable:

IEnumerable<Bier> bieren = from b in brouwers 
       select b.Bieren; 
+0

List implements IEnumerable 。你不必轉換或施放任何東西。 – Sajeetharan

回答

3

你可以做到這一點得到了啤酒按名稱排序:

IEnumerable<Bier> bieren = brouwers.SelectMany(b => b.Bieren) 
            .OrderBy(bi => bi.Naam); 

或使用查詢綜合風格你在那裏:

IEnumerable<Bier> bieren = from brouwer in brouwers 
          from bier in brouwer.Bieren 
          orderby bier.Naam 
          select bier; 
+0

啊,不知道我可以用SelectMany做到這一點,太棒了!謝謝! –