C# で頻繁に使われるコレクションのひとつが Dictionary<TKey, TValue>
です。これは「キー」と「値」をペアで管理できるコレクションで、検索や追加・削除が効率的に行えます。本記事では Dictionary の基本操作を、サンプルコード付きで解説します。
Dictionaryの基本構文
Dictionary<TKey, TValue>
はキーの型と値の型を指定して利用します。キーは一意である必要があり、重複するキーは登録できません。
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// string をキー、int を値に持つ Dictionary
Dictionary<string, int> scores = new Dictionary<string, int>();
// データの追加
scores.Add("Taro", 80);
scores.Add("Hanako", 95);
scores.Add("Jiro", 70);
Console.WriteLine("登録完了");
}
}
値の取得
登録した値はキーを指定して取り出せます。存在しないキーを指定すると例外が発生するため注意が必要です。
Console.WriteLine(scores["Hanako"]); // 95
存在チェックを行いたい場合は ContainsKey()
を使います。
if (scores.ContainsKey("Ken"))
{
Console.WriteLine(scores["Ken"]);
}
else
{
Console.WriteLine("Ken は登録されていません");
}
安全に値を取得する(TryGetValue)
TryGetValue
を使うと例外を避けつつ値を取得できます。
if (scores.TryGetValue("Jiro", out int value))
{
Console.WriteLine($"Jiro の点数: {value}");
}
else
{
Console.WriteLine("Jiro は登録されていません");
}
値の更新
既存のキーに対して値を代入すると更新されます。
scores["Taro"] = 85; // 値を更新
Console.WriteLine(scores["Taro"]); // 85
要素の削除
Remove
を使うとキーを指定して要素を削除できます。
scores.Remove("Hanako");
Dictionaryをループ処理する
foreach
を使うと、キーと値のペアを順番に取り出せます。
foreach (var pair in scores)
{
Console.WriteLine($"キー: {pair.Key}, 値: {pair.Value}");
}
まとめ
Dictionary<TKey, TValue>
の基本操作は以下の通りです。
Add
でデータを追加[]
で値を取得・更新ContainsKey
やTryGetValue
で安全に検索Remove
で削除foreach
で全件ループ処理
Dictionary を活用することで、キーによる高速な検索やデータ管理が可能になります。実務でのデータ管理や設定値の保持など、幅広い場面で役立ちます。