Pages

2016/07/13

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,
 };
便利ですね。
Related Posts Plugin for WordPress, Blogger...