-1

私のテーブルには次の列があります:-

LevelId、LevelName、ScenarioId、TeamId。

teamId でグループ化したときに、最小の LevelId に対応する LevelName を選択したい

4

1 に答える 1

0

したがって、次のことを行います。

  • チーム ID でグループ化
  • 各グループ内でレベル ID 順
  • 最初の結果のレベル名を取る

つまり、次のように聞こえます。

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 を持つエントリを見つけるためだけに、グループ全体を並べ替える必要がなくなります。

于 2013-03-22T10:43:49.500 に答える