我的表有以下列:-
LevelId、LevelName、ScenarioId、TeamId。
我想在按teamId分组时选择与最小LevelId对应的LevelName
所以,你想要:
这听起来像:
var query = table.GroupBy(x => x.TeamId)
.Select(g => g.OrderBy(x => x.LevelId).First().Name);
不要只接受这个查询并将其包含在您的代码中 - 确保您理解它,以便下次您有类似的事情要做时,您可以提出自己的解决方案。
如果这是在 LINQ to Objects 中,您可能会发现MoreLINQ会很有用,它的MinBy
方法是:
var query = table.GroupBy(x => x.TeamId)
.Select(g => g.MinBy(x => x.LevelId).Name);
这避免了对整个组进行排序,只是为了找到具有最小级别 ID 的条目。