首页 > 解决方案 > 是否有某种方法可以简化对 LINQ GroupBy 查询中组的第一个成员的访问?

问题描述

我有以下 LINQ 语句收集站点的结果:

        var groupedSites = ungroupedSites.AsEnumerable()
                    .GroupBy(_ => _.s.SiteUid)
                    .Select(g => new MySites {
                            Title = g.First().sd.Title,
                            Classification = g.First().s.Classification,
                            Service = g.First().p.ServiceGateway,
                                   etc.
                        });

在使用 g.First() 的“MySites”的初始化程序中还有十几个其他属性。有没有更好的方法(比 g.First())我可以访问该组的第一项?理想情况下,最好有一个变量:

var first = g.first()

并使用它。

标签: linqgroup-bylinq-to-entities

解决方案


您可以通过以下方式做到这一点Select

var groupedSites = ungroupedSites.AsEnumerable()
    .GroupBy(_ => _.s.SiteUid)
    .Select(g => g.First())
    .Select(f => new MySites {
            Title = f.sd.Title,
            Classification = f.s.Classification,
            Service = f.p.ServiceGateway,
                    etc.
    });

推荐阅读