C#のDictionary(辞書)の使い方を初心者向けに完全解説!キーと値でデータ管理を学ぼう
生徒
「先生!C#で、言葉と意味みたいなペアを管理したいんですけど、どうすればいいですか?」
先生
「その場合は、Dictionary
(ディクショナリ)という機能を使うと便利ですよ。」
生徒
「ディクショナリ?それってどういうものなんですか?」
先生
「わかりやすく言えば、“言葉と意味のセット”を管理できる道具です。それでは、基本的な使い方を一緒に学びましょう!」
1. Dictionary(ディクショナリ)とは?
C#のDictionary
(ディクショナリ)は、「キー(key)」と「値(value)」のセットでデータを管理するための型です。まるで、言葉とその意味をセットで管理する辞書のようなものと考えると理解しやすいです。
例えば「りんご → Apple」「ねこ → Cat」のように、日本語をキー、英語を値として登録できます。
このDictionaryは、キーを使って、すばやく値を取り出せるのが大きな特徴です。
2. Dictionaryの宣言と初期化の方法
まずは、Dictionaryを使うための準備として、宣言と初期化の方法を学びましょう。以下のように書きます。
Dictionary<string, string> dic = new Dictionary<string, string>();
このコードでは、「キーが文字列」「値も文字列」のDictionaryを作っています。string
とは、文字列を表すC#の型です。
3. Dictionaryにデータを追加する方法
次に、辞書にデータを追加してみましょう。Add
メソッドを使うことで、キーと値のペアを登録できます。
dic.Add("りんご", "Apple");
dic.Add("ねこ", "Cat");
dic.Add("みず", "Water");
このように、キーと値をセットで渡せば、Dictionaryに登録されます。
4. Dictionaryから値を取り出す方法
追加したデータは、キーを指定することで取り出せます。例えば「りんご」の英語を知りたいときは、次のようにします。
Console.WriteLine(dic["りんご"]);
Apple
注意: 指定したキーが存在しないと、エラーになります。エラーにならないようにするために、次の方法もあります。
5. キーが存在するか確認する方法
存在しないキーを指定するとエラーになるため、安全に取り出すにはContainsKey
を使います。
if (dic.ContainsKey("いぬ"))
{
Console.WriteLine(dic["いぬ"]);
}
else
{
Console.WriteLine("そのキーは存在しません。");
}
そのキーは存在しません。
このようにContainsKey
で事前に確認しておくと、安全にデータを扱えます。
6. Dictionaryの全てのデータを表示する方法
辞書の中にあるすべてのデータを表示するには、foreach
(フォーイーチ)という構文を使います。
foreach (KeyValuePair<string, string> pair in dic)
{
Console.WriteLine($"キー:{pair.Key}、値:{pair.Value}");
}
キー:りんご、値:Apple
キー:ねこ、値:Cat
キー:みず、値:Water
KeyValuePair
(キー・バリューペア)とは、「キーと値のペア」という意味です。
7. 値を上書き(更新)する方法
同じキーに新しい値を入れると、古い値が更新(上書き)されます。例えば、「みず」を「Water」から「Aqua」に変える場合は次のように書きます。
dic["みず"] = "Aqua";
Console.WriteLine(dic["みず"]);
Aqua
8. Dictionaryからデータを削除する方法
登録したキーと値のセットを削除するには、Remove
メソッドを使います。
dic.Remove("ねこ");
このようにすると、「ねこ → Cat」のデータが辞書から消えます。
9. Dictionaryの使い道と具体的な例
Dictionaryは、さまざまな場面で使えます。以下は身近な例です。
- ユーザーのIDと名前を管理
- 商品コードと価格を関連づける
- 曜日と予定を記録する
例えば、月曜日の予定を登録するなら:
Dictionary<string, string> schedule = new Dictionary<string, string>();
schedule.Add("月曜日", "英語の授業");
Console.WriteLine(schedule["月曜日"]);
英語の授業
10. Dictionaryと配列やリストとの違い
Dictionaryは、「順番」ではなく「名前(キー)」でデータを管理する点が、配列やリストと大きく異なります。
- 配列やリストは、番号(0番目、1番目など)でアクセス
- Dictionaryは、名前や意味などの「キー」でアクセス
このように、何かの名前やIDで情報を管理したいときには、Dictionaryがとても便利です。