在 Linq 中访问 IEnumerable 时出现问题

本文关键字:问题 IEnumerable Linq 访问 | 更新日期: 2023-09-27 18:35:04

我在Visual Studio 2013中有以下代码:

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

每个布劳威尔都有一份啤酒清单。

现在我需要从每个布劳威尔那里获取该列表,并打印该列表。

所以我有这个来打印啤酒:

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;

在 Linq 中访问 IEnumerable 时出现问题

您可以这样做来按名称订购啤酒:

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;