无法在Linq中访问IEnumerable

时间:2014-12-21 14:30:02

标签: c# linq

我在visual studio 2013中有以下代码:

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

每个Brouwer都有一份啤酒清单。

现在我需要从每个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;

1 个答案:

答案 0 :(得分: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;