C#プチリファレンス

C# Dictionary型(System.Collections.Generic.Dictionary)

Dictionary型は要素をKeyとValueにひも付けて保持するコレクションクラスです。


ディクショナリーのイメージ図

Dictionaryを作成する

例)Dictionaryを生成する(Key=string型、Value=string型)
using System.Collections.Generic;

Dictionary<string, string> dic = new Dictionary<string, string>();

要素の追加

例)要素を3つ追加する
dic.Add("01", "北海道");
dic.Add("02", "青森県");
dic.Add("03", "岩手県");

※指定したKeyの要素が既に存在する場合は例外が発生します。(ArgumentException)
そのような場合は、ContainsKeyメソッドで要素の存在を確認してから追加すると安全です。
(書き方は、下の「Key値、Value値が存在するかどうか確認する」欄をご覧ください。)

要素の取得

例)Key=02のValue値を取得する
【方法1】
string name = dic["02"];

【方法2】
string name;
bool b = dic.TryGetValue("02", out name);

※方法1の場合、指定したKeyが無い時は例外が発生します。例外を発生させたくない場合は、dic.ContainsKeyメソッドでキーが存在の有無を判定してから要素を取得してください。
(書き方は、下の「Key値、Value値が存在するかどうか確認する」欄をご覧ください。)

要素の更新

例)Key=01のValueを「ほっかいどう」に更新する
dic["01"] = "ほっかいどう";

要素の削除

例)Key値="02"の要素を削除する
dic.Remove("02");
例)全ての要素を削除する
dic.Clear();

Key値、Value値が存在するかどうか確認する

例)Key="01"が存在するかどうか確認する
bool b = dic.ContainsKey("02");
例)Value値="北海道"が存在するかどうか確認する
bool b = dic.ContainsValue("北海道");

要素数の取得

例)要素数を取得する
int cnt = dic.Count;

Dictionary型を別の型に変換する

例)Dictionary型をList型に変換する
List<KeyValuePair<string, string>> list = dic.ToList();

※KeyValuePair型のListになります。

例)Dictionary型を配列に変換する
KeyValuePair<string, string>[] arr = dic.ToArray();

※KeyValuePair型の配列になります。

foreachで要素を取り出す

Dictionary型の中身を1つ1つ取り出して処理したい場合は、foreach文が便利です。

例)foreachで要素を取り出す
// 全要素をループ
foreach(string str in dic){
  Console.WriteLine(str);
}
ToTop