ThenByの順序を保持する式を作成するにはどうすればよいですか?以下の式は、Bowler.Number順に並べられたグループを生成しますが、各グループの一致はソートされません。
public class Match
{
public int Id { get; set; }
public virtual Bowler Bowler { get; set; }
public byte GameNumber { get; set; }
public int Score { get; set; }
...
}
public class Bowler
{
public int Id { get; set; }
public int Number { get; set;}
...
}
var GroupedMatches = db.Matches.OrderBy(m=>m.Bowler.Number).ThenBy(m=>m.GameNumber).GroupBy(m => m.Bowler.Number)
これが私が欲しい出力です:
1
game1 295
game2 199
game3 202
game4 178
2
game1 177
...
現在私は2つのforeachを使用しています
foreach (var item in TheGroups){
... do some stuff with the Group
foreach (var x in item.OrderBy(a =>a.Number)) { //<-- can I get rid of this OrderBy?
... do some stuff with the Matches in this group
}
}
大したことではありません。LINQを使用すると、後でグループを処理するときではなく、グループが作成されたときにグループ内の一致を並べ替えることができると思いました。