C#のGroupByに複数のキーを指定する

サンプルソース
GroupBy で複数のキーを使いたい時があります。

GroupByに複数キーを指定

こんな書き方ができます。
class test
{
 public int no { get; set; }
 public string name { get; set; }
}
var data = new List<test>() {
 new test { no = 2,name="AAAA" }
 , new test { no = 2, name = "ZZZ" }
 , new test { no = 1, name = "BBBB" }
 , new test { no = 1, name = "CCC" }
};
var query = data.GroupBy(x => new { x.no, x.name });

// no = 2, name = "AAAA"
// no = 2, name = "ZZZ"
// no = 1, name = "BBBB"
// no = 1, name = "CCC"

// Listにするならこんな感じ。改行を入れています。
query2 = data.GroupBy(x =&gt: new { x.no, x.name })
.Select(y =&gt: new { no = y.Key.no, y.Key.name }).ToList();

クエリ式が好きな方はこちら。
var query2 = from q in data
 group q by new
 {
     q.no,
     q.name
 } into grp
 select new
 {
     no = grp.Key.no,
     name = grp.Key.name,
 };
便利ですね。

このブログの人気の投稿

コピーした行の挿入が表示されない時はフィルタされていないかチェック

Excel で一部の図形だけ固定する