Linq

C# Dictionaryの使い方を覚えよう ディクショナリ型でのLinqの使い方も解説

今回のテーマ

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

今回は下記のテーマについての記事を書いていこうと思います。

今回のテーマ

Dictionaryの使い方について解説。

今回はディクショナリーの使い方を解説します。リストや配列程、使う機会はないかもしれませんが、便利なので覚えていきましょう!

今回はDictionaryについて学ぶよ!
KappaChan

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

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

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

続きを見る

Dictionaryの初期化方法

まずはDictionaryの初期化方法を見ていきましょう。2パターンあるので、好きな方を選んでください。

今回の例では、ロボット名がキーで、それに対応する要素名が作成者とします。

初期化方法1

初期化方法2

このブログでは、初期化方法2を使っていきますね。

Dictionaryの要素の追加方法

要素の追加方法も2つあります。

要素の追加方法1

要素の追加方法2

要素の追加方法1では、既にキーが存在していた場合は、値が上書きされます。

追加方法2では、既にキーが存在していた場合、ArgumentException例外が発生するので注意が必要です。

このブログでは、追加方法1を使っていきます。

Dictionaryから要素を取り出す方法

続けて、要素の取り出し方です。下記のようにすれば、キーに対応した値を取り出すことができます。

指定したキーが無かった場合はKeyNotFoundException例外が発生するので、ContainsKeyメソッドを使うことで、キーが存在するかを確認することをおすすめします。

Dictionaryから要素を削除する方法

要素の削除方法を解説します。下記のようにRemoveメソッドを使用することで削除できます。

返り値はbool型で削除出来た場合はtrue、出来なかった場合はfalseを返します。

Dictionaryから全ての要素を取り出す方法

全ての要素を取り出す場合はforeachを使いましょう。キーの値はKeyを指定し、それに対応する要素の値はValueを指定します。

今までの処理を総まとめしたソースコードを記述します。

Dictionaryの使い方

 result
Dr Light
Roll:Dr Light
Airman:Dr Wily
Quickman:Dr Wily
Iceman:Dr Wily

全ての要素を取り出す時にforeachを使えるということは、Linqも使用することができます。

KappaChan
DictionaryもLinqを使用することができるかっぱ!

Dictionary型にLinqを使用した例

最後にLinqを使ってみた例を二つ紹介します。

行いたい処理

文字列の長さが7以上のロボット名と作成者を出力する。

Linqを使用する例

 result
Rockman:Dr Light
Quickman:Dr Wily
Fireman:Dr Wily

Linqを使用して、Whereで抽出した後にToDirectoryで再度、Directory型に戻しています。

上記のようにToDirectory内でそれぞれKeyとValueを指定することでDirectory型を再度作ることができます。

LinqのWhereについては下記の記事に書いています。

CHECK

C# Linqの使い方。Select、Whereを解説。

今回のテーマContents1 今回のテーマ2 Linqを使う場面3 Linqメソッドの解説の流れ4 Selectの使い方5 Whereの使い方6 まとめ こんばんは、かっぱちゃんです。 今回は下記の ...

続きを見る

二つ目の例を見てみましょう。

行いたい処理

作成者がワイリーのロボット名を出力する。

Linqを使用する例

 result
Airman
Quickman
Iceman
Fireman

今回の例はロボット名の出力のみだったので、リストに変換して実現しました。

もちろん、Dictionary型に変換し、出力することもできます。時と場合に応じて、使い分けましょう。

まとめ

今回はDictionary型について解説しました。

二つの要素を対応付けて管理したい場合などにとても強力ないないので、ぜひ覚えてください。

今回の記事では、Dictionary型について紹介しきれていないので、別記事でさらに掘り下げて解説していきたいと思います。

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

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

 

-Linq

X