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 =>: new { x.no, x.name })
.Select(y =>: 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,
};
便利ですね。