Linq 配列、リスト

C# Linq リスト型を配列に、配列をリスト型に、リスト型をディクショナリ型に、配列をディクショナリ型に変換する方法

このブログではAffinger5を使用しています。

ブログテーマが気に入った方はコチラをクリック

今回のテーマ

こんにちは、サルモリです。

今回はLinqを使用して、下記の変換をやっていきましょう。

変換内容

・リスト型を配列に

・配列をリスト型に

・リスト型をディクショナリ型に

・配列をディクショナリ型に

・ディクショナリ型をリスト型に

・ディクショナリ型を配列に

今まで型の変換はたくさんしてきましたが、変換について記事にしていませんでしたね。

今回はどんどん型を変換していきましょう!!

リスト型を配列に、配列をリスト型に

リスト型と配列の相互の変換は別の記事でも何回もやっていますね!

下記のメソッドを使いましょう!!

使用するメソッド

  • ToArray:配列に変換
  • ToList:リストに変換

それでは上記のメソッドを使って、早速例を記述します。

 

 出力結果
ピカチュウ
カイリュー
ヤドラン
ピジョン
型はSystem.Collections.Generic.List1[System.String]ですよ。
型はSystem.String[]ですよ。

正しく変換されていますね!

GetType()メソッドは指定した変数の型を受け取るメソッドです。

この調子で逆の配列→リストもやってみましょう。

 出力結果
ピカチュウ
カイリュー
ヤドラン
ピジョン
型はSystem.Collections.Generic.List1[System.String]ですよ。
型はSystem.String[]ですよ。

配列→リストも同じように結果が得られましたね!配列とリストは自由に変換できるので、覚えましょう!!

リスト型をディクショナリ型に、配列をディクショナリ型に

続けて、リスト型と配列をディクショナリ型にしてみます。

ディクショナリ型にするには、下記のメソッドを使用します。

使用するメソッド

  • ToDictionary:ディクショナリに変換

ToDictionaryメソッドを使用して、とりあえずリストを変換してみましょう!

このような感じで指定します。

 出力結果
ピカチュウ:ピカチュウ
カイリュー:カイリュー
ヤドラン:ヤドラン
ピジョン:ピジョン
型はSystem.Collections.Generic.List1[System.String]ですよ。
型はSystem.Collections.Generic.Dictionary2[System.String,System.String]ですよ。

変換は出来ているけど、KeyもValueも同じ値になってますね 😥

これでは、あまり意味がない 😥 

ディクショナリ型に変換する時は基本的にリストや配列内の型は複数個項目をもっているクラスの時などにしましょう!

例えば、下記の例のような感じです。ポケモンクラスを新しく作りました!!

 出力結果
25:Pokemon
149:Pokemon
80:Pokemon
17:Pokemon
型はSystem.Collections.Generic.List1[Pokemon]ですよ。
型はSystem.Collections.Generic.Dictionary2[System.Int32,Pokemon]ですよ。

図鑑番号がKeyに名前がValueに入りましたね。

ポイントは下記のソースコードです。

ToDictionaryの引数で指定した項目がKeyとなります。

この1つ前のKeyが名前になってしまったソースコードでは、リスト内にstring型1つしかなかったので、

Keyに名前を指定してしまったということです。

余談ですが、図鑑番号調べるのめんどくさかった 😥

素直に「フシギダネ、フシギソウ・・」とかにしておけばよかった・・。

配列も同様にディクショナリ型に出来るので、割愛しますね!!

ディクショナリ型をリスト型に、ディクショナリ型を配列に

最後にディクショナリ型をリスト型、配列にしてみます。

 出力結果
25:ピカチュウ
149:カイリュー
80:ヤドラン
17:ピジョン
型はSystem.Collections.Generic.List1[System.Collections.Generic.KeyValuePair`2[System.Int32,System.String]]ですよ。
型はSystem.Collections.Generic.Dictionary2[System.Int32,System.String]ですよ。

ToListメソッドでリスト型に変換できました!

ToListメソッドが優秀で、自動的にKeyValuePair型として値を二つ保持できるようになっています。

配列に変換したパターンもみてみましょう!!

 出力結果
25:ピカチュウ
149:カイリュー
80:ヤドラン
17:ピジョン
型はSystem.Collections.Generic.KeyValuePair2[System.Int32,System.String][]ですよ。
型はSystem.Collections.Generic.Dictionary2[System.Int32,System.String]ですよ。

ToArrayメソッドも優秀で、自動的にKeyValuePair型に変換して、2つの値を保持していますね!

まとめ

今回はリスト型、配列型、ディクショナリ型の相互の変換についての記事でした。

使用したメソッドはこちら

・ToList

・ToArray

・ToDictionary

Linqを使用すればかなり簡単に変換ができると思うので、是非たくさん使ってくださいね!!

サルモリ
変換がとても簡単だったね!!

配列、リストなどの記事はこちら

C#のLinqをさらに学びたい方へ

C#のLinqを理解して頂くために参考書を執筆致しました!

Linqの演習問題はこちらの参考書に載せているので、問題を解いて理解を深めたい方はこちらの参考書チェックしてください!

下記の画像をクリック!!kindleunlimitedの会員であれば無料で見れます!

⇩初心者向け      ⇩中級者向け

C#でChatGPTAPIを使ってブログ作成を自動化しませんか?

-Linq, 配列、リスト

Ads Blocker Image Powered by Code Help Pro

広告ブロックを検出しました。

ブラウザの広告機能を使用して広告をブロックしていることが検出されました。
ブラウザの広告ブロッカーを無効にし、「更新」をクリックしてください。

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock