私のテーブルには次の列があります:-
LevelId、LevelName、ScenarioId、TeamId。
teamId でグループ化したときに、最小の LevelId に対応する LevelName を選択したい
私のテーブルには次の列があります:-
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 にある場合、MoreLINQMinBy
がそのメソッドで役立つことがわかるかもしれません。
var query = table.GroupBy(x => x.TeamId)
.Select(g => g.MinBy(x => x.LevelId).Name);
これにより、最小レベル ID を持つエントリを見つけるためだけに、グループ全体を並べ替える必要がなくなります。