有什么方法可以简化对 LINQ GroupBy 查询中组的第一个成员的访问吗?

Is there some way to simplify access to the first member of a group in a LINQ GroupBy query?

我有以下 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.
                        });

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

var first = g.first()

并使用它。

您可以通过额外的 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.
    });