C#のDictionaryを使ってみる

今回はC#のDictionaryを使ってみたいと思います。

Dictionaryはキーと値をセットで指定し、キーで検索して値を取得する事が出来ます。

値だけを入れたい場合はリスト、キーと値のセットはDictionaryという感じですね。

リストの場合は順序があり並べ替えも可能ですが、Dictionaryは順序がないので並べ替えが出来ません。

今回のサンプルはUnity付属のMonoDevelopを使用して確認しています。

スポンサーリンク

Dictionaryを使ってみる

詳しい説明は専門サイトにまかせまして・・・・(^_^;)

実際にDictonaryを使ってみましょう。

Dictonaryの宣言と生成をしてみます。

↑のようにDictionaryとジェネリックの型を指定します。

左側にキーの型、右側に値の型を指定します。

インスタンス化する時は宣言の型の並びと合わせます(上のスクリプトの右辺)。

例えばキーをstring型、値をint型のDictionaryを作るとすれば、

となります。

右辺で型が決まっている為、暗黙の型指定であるvarを使う事が出来ます。

記述が楽になりますね。

Dictionaryの使用サンプル

Dictionaryを使っていくつかスクリプトを組んでみます。

Dictionaryの操作メソッドはほとんどがListと同じです。

C#のListをUnity付属のMonoDevelopを使って勉強していきます。

要素の値を合計するサンプル

Dictionaryの要素の値を合計するスクリプトを作成します。

キーをstring、値をintにしたDictionaryを作り、キーと値をセットしていきます。

その後foreach文でdictionary.Keysでキーの数を取得出来るので、それを使って要素数分キーをもとに値を取りだし、sumに足していきます。

コンソールには10が表示されます。

キーと値の型をintにしたサンプル

キーはstring以外の型も指定出来ます。

試しにキーと値の型にintを使ったサンプルを作成してみます。

foreach内でキーを取得し、キーとキーで取得した値を出力してます。

Dictionaryはユニークなキーを設定する必要がある為、最初にキーを1としてintDictionary[1]に2を入れますが、その後5を入れている為、最終的に最初に入れた2の値は削除されます。

値の初期化のサンプル

Dictionaryの要素を初期化する事も出来ます。

{}を使ってキーと値を記述し、初期値を指定します。

値の型にクラスを設定

今まではstringとintという型を指定してきましたが、他の型も設定する事が出来ます。

試しに値の型に自前のクラスの型を指定してみます。

Dictionaryの値の型にParameterクラスを定義したので、値にParameterクラスのインスタンスを設定する事が出来ます。

値を設定する時にParameterクラスをインスタンス化し、Parameterのフィールドを設定しています。

Parameterのフィールドをpublicにしているので、charas[key].hpという記述でhpの値を取得出来ます。

フィールドは本来privateに設定してアクセサー(SetやGet)を使って取得するか、プロパティを介してアクセスします。

おわりに

Dictionaryを使うとキーと値をセットで使用する事が出来るので、色々用途はありそうですね(パッと思い浮かばないけど・・・・)。

並び順が関係なく、キーで値を取得するデータを使いたい時は便利ですね。(^_^)v

スポンサーリンク

記事をシェアして頂ける方はこちら

フォローして頂くとやる気が出ます