C#のLinqのメソッド一覧

【C# sharp Linq】Groupbyメソッドのグループ化項目を複数指定する方法

ChatGPTのAPIを使わずに自動化することが可能です。
下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。

今回のテーマ

こんばんは、サルモリです。

今回のテーマは下記の記事について書いていきます。

今回のテーマ

グループ化する項目を複数指定する方法

今回はグループ化する項目を複数指定する方法について記述していきます。

GroupByメソッドの使用方法について、下記の記事に書いてあります。

CHECK

【C# sharp Linq】GroupByを使ってグループ化しよう。

ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 今回のテーマ ...

続きを見る

グループ化する項目を複数指定する方法を学ぼう!
サルモリ

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

今回使用するクラス

今回使用するクラスです。今回もロボットクラスを使用します。

複数項目でグループ化する方法

早速、複数項目でグループ化するソースコードを書いていきます。

色と作成者別でグループ化をしてみます。

色と作成者別でグループ化を行う方法



 result
Color:Blue Maker:Dr LightName:Rockman
---------------------------------------------
Color:Red Maker:Dr WilyName:Fireman
Color:Red Maker:Dr WilyName:Quickman
---------------------------------------------
Color:Blue Maker:Dr WilyName:Iceman
Color:Blue Maker:Dr WilyName:Airman
Color:Blue Maker:Dr WilyName:Shadowman
---------------------------------------------
Color:Yellow Maker:Dr WilyName:Elecman
---------------------------------------------
Color:Pink Maker:Dr LightName:Roll
---------------------------------------------
Color:Green Maker:Dr WilyName:Woodman
Color:Green Maker:Dr WilyName:Bubbleman
---------------------------------------------

Groupbyメソッド内で色と作成者の2つの項目を生成することでグループ化出来ていますね。

上記のやり方ともう1つ複数項目のグループ化を行う方法があるので、紹介したいと思います。

複数項目でグループ化する方法(タプルを利用する方法)

もう一つのやり方はタプルを使用する方法です。Groupby句で2つ項目を生成した箇所をタプルに置き換えるだけです。

早速、やってみましょう。

タプルについては下記の記事が分かりやすいと思います。

こちらもCHECK

【C# sharp】タプルを使用して2つの値を返す方法

ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 今回のテーマ ...

続きを見る

色と作成者でグループ化を行う方法(タプルを利用する方法)



 result
Color:Blue Maker:Dr LightName:Rockman
---------------------------------------------
Color:Red Maker:Dr WilyName:Fireman
Color:Red Maker:Dr WilyName:Quickman
---------------------------------------------
Color:Blue Maker:Dr WilyName:Iceman
Color:Blue Maker:Dr WilyName:Airman
Color:Blue Maker:Dr WilyName:Shadowman
---------------------------------------------
Color:Yellow Maker:Dr WilyName:Elecman
---------------------------------------------
Color:Pink Maker:Dr LightName:Roll
---------------------------------------------
Color:Green Maker:Dr WilyName:Woodman
Color:Green Maker:Dr WilyName:Bubbleman
---------------------------------------------

先ほどと同様に色と作成者別に出力されましたね!

タプルを使用して、2項目のグループ分けをしてみよう

早速、タプルで2項目指定してグループ分けしてみましょう。タプルとGroupbyの組み合わせの素晴らしさを味わって下さい。

この素晴らしさを感じてほしいので、いつも以上にロボットの追加を頑張りました。

強さはサルモリの主観で設定しています!!(異論は認める!)

まずはメーカー、色別で分けてみましょう!!

 出力結果
Name:Rockman Maker:Dr Light Color:Blue
----------------------------------------
Name:Rollchan Maker:Dr Light Color:Pink
----------------------------------------
Name:Heatman Maker:Dr Wily Color:Red
Name:Fireman Maker:Dr Wily Color:Red
Name:Quickman Maker:Dr Wily Color:Red
Name:Sparkman Maker:Dr Wily Color:Red
----------------------------------------
Name:Iceman Maker:Dr Wily Color:Blue
Name:Airman Maker:Dr Wily Color:Blue
Name:Shadowman Maker:Dr Wily Color:Blue
Name:Hardman Maker:Dr Wily Color:Blue
Name:Flashman Maker:Dr Wily Color:Blue
----------------------------------------
Name:Snakeman Maker:Dr Wily Color:Green
Name:Woodman Maker:Dr Wily Color:Green
----------------------------------------

凄く簡単ですよね!Groupbyでグループ別にしたい項目をタプルに設定するだけで出来てしまいます!素晴らしい!

シリーズ、強さ別にも分けてみましょう!

 出力結果
Name:Rockman Series:1 Strength:5
----------------------------------------
Name:Rollchan Series:1 Strength:1
----------------------------------------
Name:Heatman Series:2 Strength:2
Name:Flashman Series:2 Strength:2
----------------------------------------
Name:Fireman Series:1 Strength:3
----------------------------------------
Name:Iceman Series:1 Strength:4
----------------------------------------
Name:Quickman Series:2 Strength:5
----------------------------------------
Name:Airman Series:2 Strength:3
Name:Woodman Series:2 Strength:3
----------------------------------------
Name:Shadowman Series:3 Strength:5
----------------------------------------
Name:Snakeman Series:3 Strength:3
----------------------------------------
Name:Sparkman Series:3 Strength:4
Name:Hardman Series:3 Strength:4
----------------------------------------

沢山グループが出来てしまいましたが、正しくグループ分けされていますね!

サルモリ
タプルとGroupbyの組み合わせは本当に使いやすいよ

タプルを使用して、3項目のグループ分けをしてみよう

3項目以上も同様にタプルに複数個指定するだけで大丈夫です。

メーカー、色、シリーズ別に分けてみましょう。

 出力結果
Name:Rockman Maker:Dr Light Color:Blue Series:1
----------------------------------------
Name:Rollchan Maker:Dr Light Color:Pink Series:1
----------------------------------------
Name:Heatman Maker:Dr Wily Color:Red Series:2
Name:Quickman Maker:Dr Wily Color:Red Series:2
----------------------------------------
Name:Fireman Maker:Dr Wily Color:Red Series:1
----------------------------------------
Name:Iceman Maker:Dr Wily Color:Blue Series:1
----------------------------------------
Name:Airman Maker:Dr Wily Color:Blue Series:2
Name:Flashman Maker:Dr Wily Color:Blue Series:2
----------------------------------------
Name:Shadowman Maker:Dr Wily Color:Blue Series:3
Name:Hardman Maker:Dr Wily Color:Blue Series:3
----------------------------------------
Name:Snakeman Maker:Dr Wily Color:Green Series:3
----------------------------------------
Name:Woodman Maker:Dr Wily Color:Green Series:2
----------------------------------------
Name:Sparkman Maker:Dr Wily Color:Red Series:3
----------------------------------------

沢山別れてましたが、3つ以上でも正しくグループ分けされていますね。

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

まとめ

今回は複数項目のグループ化について2つ紹介しました。

個人的には、タプルを利用した方法が好きです。タプルにすると、柔軟に値を取り出したり出来ますし、理解もしやすいです。

今回の記事は短いですが、以上です。最後まで見て頂き、ありがとうございました。

サルモリ
最後までみてくれてありがとう!

新しく類似する記事を書いたので、下記の記事も是非見てください。

CHECK

【C# sharp Linq】Groupbyでグループ化した最大値、最小値、合計、平均値、件数を求める方法

ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 今回のテーマ ...

続きを見る

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

 

 

-C#のLinqのメソッド一覧

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock