linq - 是否有某种方法可以简化对 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()
并使用它。
解决方案
您可以通过以下方式做到这一点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.
});