Linq

C# Linqの使い方。GroupByを使ってグループ化しよう。

今回のテーマ

こんばんは、かっぱちゃんです。

今回もLinqのメソッドを紹介してきます。今回紹介するメソッドは下記です。

今回のテーマ

Linqのメソッド、GroupByの使い方。

今回はGroupByメソッドについて解説します。

GroupByメソッドを紹介するためにクラスを定義してLinqメソッドを扱う記事を先に紹介しました。

よければ、下記の記事も見てください。下記はSelectメソッドの使い方です。

CHECK

C# Linqの使い方。クラスを定義してSelectメソッドを使おう。

今回のテーマContents1 今回のテーマ2 今回使うクラスについて3 Linqメソッドの解説の流れ4 Selectの使い方5 複数個の属性を抜き出す方法6 まとめ こんばんは、かっぱちゃんです。 ...

続きを見る

今回はGroupByついて解説するかっぱ!
KappaChan

他のLinqの記事についてはこちら

合わせて読みたいC# Linqを勉強するならこれだけは読んでほしいオススメの本3選 オススメの参考書

C#を勉強するためのオススメの本を紹介Contents1 C#を勉強するためのオススメの本を紹介1.1 C#の基礎を学ぶなら「やさしいC#」1.2 C#の全体像を学ぶなら「独習C#」1.3 C#をさら ...

続きを見る

GroupByについて

GroupBy

指定した要素においてグループ化を行う。

KappaChan
GroupByの使い方はイメージしにくいので具体的に解説するかっぱ!

Linqメソッドの解説の流れ

下記の流れで説明したいと思います。

行いたい処理の例を書きます。

Linqを使用するソースコードを書いていきます。

ソースコードには、リストを使います。

KappaChan
今回はLinqを使用しない例は長くなるので書かないかっぱ!

定義するクラスについて

今回、説明する上で使用するクラスです。前回の記事で使ったものにメーカーを追加しました。

使用するクラス

GroupByの使い方

GroupByの使い方について、例を書いていきます。今回行いたい処理です。

行いたい処理

メーカーで別々のリストを作りたい。

メーカーでグループ分け

 result
Maker:Dr Light Name:Rockman
Maker:Dr Light Name:Roll
-------------------------------
Maker:Dr Wily Name:Fireman
Maker:Dr Wily Name:Iceman
Maker:Dr Wily Name:Elecman
Maker:Dr Wily Name:Airman
Maker:Dr Wily Name:Woodman
-------------------------------

上記のようなソースコードを書きました。GroupByによって、

ライト博士のロボットリストとワイリー博士のロボットリストが作成されてます。

指定した属性の値が一致している者同士でリストが作成されます。

リスト内にリストがあるイメージでいいかっぱ!
KappaChan

別の属性も指定して見ましょう。今度はメーカーでなく色で指定してみます。

色でグループ分け

 result
Color:Blue Name:Rockman
Color:Blue Name:Iceman
Color:Blue Name:Airman
-------------------------------
Color:Red Name:Fireman
-------------------------------
Color:Yellow Name:Elecman
-------------------------------
Color:Pink Name:Roll
-------------------------------
Color:Green Name:Woodman
-------------------------------

上記のようにグループ分けされたと思います。

今回の色の指定だと5つリストが作成されていることになりますね。

青のリストだけほしいんだけど・・・。って場合はWhere句を使いましょう。

2つ以上指定する方法

今回はさらに2つ以上指定する場合もやってみましょう。色とメーカーで分けます。

色とメーカーでグループ分け

 result
Maker:Dr LightColor:Blue Name:Rockman
-------------------------------
Maker:Dr WilyColor:Red Name:Fireman
-------------------------------
Maker:Dr WilyColor:Blue Name:Iceman
Maker:Dr WilyColor:Blue Name:Airman
-------------------------------
Maker:Dr WilyColor:Yellow Name:Elecman
-------------------------------
Maker:Dr LightColor:Pink Name:Roll
-------------------------------
Maker:Dr WilyColor:Green Name:Woodman
-------------------------------

あまり、必要のないリストですね・・・。二つ指定したい時はSelectと同じくNewで二つ指定すれば大丈夫です。

KappaChan
よく使うメソッドなので、覚えるかっぱ!

他のLinqの記事についてはこちら

まとめ

今回もLinqメソッドの紹介記事でした。今回の取り上げたメソッドを下記に纏めます。

今回のメソッド一覧

  • GroupBy

今回はGroupByについて解説しました。各属性でリストを分けたい時にすぐに実現できるのでとても便利です。

この機会に覚えてください。紹介しようとしてたLinqメソッドはあとわずかなので、頑張って記事書いていきます!

最後まで見て頂きありがとうございました。

KappaChan
最後まで見てくれてありがとうかっぱ!

他のLinqの記事についてはこちら

 

-Linq

X