c# Dictionary プログラミング

C# Dictionary(ディクショナリ)の使い方。用法・用例を解説

c#のディクショナリー(Dictionary)について見ていきたいと思います。

Dictionaryって何?どうやって使うの?というC#初心者の方向けに、簡単に説明していきたいと思います。


ディクショナリ・Dictionaryとは?

Dictionary=辞書。Key:キーとValue(値)をペアに持つコレクションを言います。

↓このようなイメージです。まだこのDictionaryには何も登録していないので空です。

↓これに値を入れてみましょう!

例えば、「名前 ⇔ 身長」をペアにして登録する例を挙げてみます。

「パパの身長は175cm、ママの身長は160cm、長女の身長は120cm」これをDictionaryに登録してみると、このようなイメージです↓

Dictionaryを使った実装をしてみよう

先ほどの例を使って、実際にプログラムを組んでみましょう。

サンプルアプリとして↑このような簡単な画面を作って動作確認していきます。ボタンを3つ設けました。Dictionaryに値をセットするボタン、またゲットするボタンが2つです。

まずは19行目で、Dictionaryメンバ変数を定義します。15行目の画面のコンストラクタでnewしてインスタンスを生成してあげます。newしてあげないと「dic」にnullアクセスで例外発生するので忘れずに。

Dictonaryに値を設定してみよう

まずは、button1_Click関数で、Dictionaryに値を設定してみましょう(21行目から)。

Dictionaryへの値設定は↓このように設定します。

Dictionaryに値を設定してみました。ブレイクポイントを貼って、メンバ変数のDictionary「dic」の中身を見てみるとこのようになっています↓

一番下で「Count」は「3」になっています。パパ&ママ&長女の3つ分ですね。

そして各要素を見てみると、「Key」「Value」で先ほど設定した値が確認できます。

  • 「パパ ⇔ 175」
  • 「ママ ⇔ 160」
  • 「長女 ⇔ 120」

とそれぞれ、KeyとValueでペアで設定できているのが確認できます。

Dictionaryから値を取得してみよう

Dictionaryから値を取得してみましょう。

基本的な取得方法は以下の通りです。

TryGetValue関数を使って、指定した "Key" に対する "Value" を取得可能です。 "Value" は out パラメータとして指定します。

さらにTryGetValueには戻り値があります。bool型で、TryGetValueにしていたKeyが無い場合はfalseが帰ってきます。このときは out パラメターのValue(以下の例では papaValue)は何が入っているか不明ですので参照不可です。指定したKeyに対するValueがあればtrueがかえってきますので、この時は、out パラメータのValueは参照可能です。

Dictionaryはこんな時につかえる!

実際、アプリケーションを作成していくとDictionaryを使いたくなるケースはたくさんあります。

これまでの説明通りKeyとValueでペアで値を保持できるのがDictionaryです。その通り、種別「Key」毎に異なる値を保持しておきたい時に有効です。

ただし、基本的には一つのKeyに対して一つの値(Value)しか保存できないので注意が必要です。Keyに対してValueを設定すると前回までの値は上書きされます。

もちろん、Valueを配列やListにすれば、その限りではありませんが(この話は別記事にてまとめたいと思います)。

\この記事はどうでしたか?/

-c#, Dictionary, プログラミング

© 2021 ジョブログLiFE