C#の辞書(Dictionary)の使い方と応用例

C#でのマップ(辞書)の使用方法について解説します。マップとは、キーと値のペアを格納し、それらを迅速に検索、追加、削除するためのデータ構造です。C#では、このマップの機能はDictionaryクラスを使用して提供されます。

1. Dictionaryの基本的な使い方

C#でDictionaryを使用するには、System.Collections.Generic名前空間をインポートします。

主なメソッドとプロパティ:

  • Add(key, value): 指定したキーと値を追加します。すでに存在するキーを追加しようとすると例外が発生します。
  • Remove(key): 指定したキーを持つエントリを削除します。
  • ContainsKey(key): 指定したキーが辞書に存在するかを確認します。
  • TryGetValue(key, out value): 指定したキーに関連付けられた値を取得します。キーが存在しない場合でも例外が発生しません。
  • Count: 辞書内のエントリの数を取得します。

2. 応用的な使い方

初期化時に値を設定する

辞書を初期化する際に、同時に値を設定することも可能です。

異なる型のキーと値

キーや値に異なる型を使用することも可能です。例えば、キーを整数、値を文字列にする場合:

TryGetValueメソッドを使う

キーが存在するかどうかを確認しつつ、そのキーの値を取得したい場合に便利です。

3. Dictionaryの性能と注意点

  • 高速な検索: Dictionaryはハッシュテーブルを使用しており、キーに対する操作(追加、削除、検索)が非常に高速です。
  • キーの一意性: キーは一意でなければなりません。同じキーで値を追加すると、既存の値が上書きされます。
  • スレッドセーフでない: Dictionaryはスレッドセーフではないため、マルチスレッド環境で使用する際は注意が必要です。スレッドセーフなコレクションを使用するか、適切な同期処理を行う必要があります。

まとめ

C#のDictionaryは、キーと値のペアを効率的に管理するための便利なデータ構造です。Dictionaryを使用することで、検索や管理が簡単になり、コードの可読性と保守性が向上します。用途に応じて適切に活用し、パフォーマンスを最大限に引き出しましょう。