C#/VB.NET  コレクションのグルーピングを行う(ラムダ式)

SQLのようなGroup byを使ったグルーピングを行うことはできますか?

LINQラムダ式のGroupBy区を使ってグルーピングすることができます。

目次

LINQラムダ式のGroupBy区を使ってグルーピングする

 LINQラムダ式のGroupByメソッドを使って、指定した条件のグルーピングを行うことができます。
グルーピング後に特定列を抽出したい場合には、Select区を利用します。

コレクション.GroupBy(x=>x.グループキー).select(x=>x.特定列).tolist()

List<(int, string)> lstItem = new List<(int,string)> {(1,"sakura"),
                                                        (2, "suisei"), 
                                                        (3, "usada"), 
                                                        (3, "usada"), 
                                                        (2, "suisei") };

var ret = lstItem.GroupBy(x => new { x.Item2 }).Select(x => new { x.Key.Item2 }).ToList();
ret.ForEach(x => Debug.WriteLine(x));
Dim lstItem As New List(Of (Integer, String))

lstItem.Add((1, "sakura"))
lstItem.Add((2, "suisei"))
lstItem.Add((3, "usada"))
lstItem.Add((3, "usada"))
lstItem.Add((2, "suisei"))

Dim ret = lstItem.GroupBy(Function(x) New With {Key x.Item2}).
					Select(Function(x) New With {x.Key.Item2}).ToList()
ret.ForEach(Sub(x) Debug.WriteLine(x))
{ Item2 = sakura }
{ Item2 = suisei }
{ Item2 = usada }
CHECK

複数キーでグループ化する場合は、Tuple.Createを利用します。

リスキリングでキャリアアップしてみませんか?

リスキリング(学び直し)は、経済産業省が推奨しており、

今だけ、最大70%のキャッシュバックを受けることができます。

リスキリング 給付金が出るスクール紹介

最大70%の給付金が出るおすすめのプログラミングスクール!

国策で予算が決められているため申し込みが多い場合は早期に終了する可能性があります!

興味のある方はすぐに確認しましょう。

グルーピングの応用方法

LINQラムダ式のGroupByメソッドを使用して、複雑な処理を行う方法を「C#/VB.NET LINQのGroupByの使い方:グループ化する方法」で紹介していますので、あわせて参考にしてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次