C#のDictionary型の基本操作と活用例を紹介
生徒
「C#でデータを名前と一緒に管理する方法ってありますか?例えば、英単語と日本語の意味をまとめて保存したいんです。」
先生
「そんな時に便利なのが、C#のDictionary型です。Dictionaryは“辞書”のように、言葉(キー)と意味(値)をセットで管理できるコレクションです。」
生徒
「なるほど!辞書みたいに言葉と意味をセットにして管理できるんですね。どうやって使うんですか?」
先生
「それでは、C#のDictionary型の基本操作を順番に見ていきましょう!」
1. Dictionary型とは?
C#のDictionary型は、データを「キー(Key)」と「値(Value)」の組み合わせで保存するコレクションです。例えば、学生の出席番号をキーにして、その学生の名前を値として登録すると、番号を使って素早く名前を探せるようになります。
「キー」は辞書の見出し語、「値」はその意味にあたるイメージです。同じキーを重複して登録することはできませんが、値は同じでも構いません。
2. Dictionaryの基本的な作成方法
まずは、C#でDictionaryを作成する方法を見てみましょう。英単語と日本語を管理する簡単なサンプルです。
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary.Add("apple", "りんご");
dictionary.Add("dog", "いぬ");
dictionary.Add("book", "ほん");
Console.WriteLine(dictionary["apple"]);
}
}
りんご
このように、キーに「apple」を指定すると、対応する値「りんご」を取り出すことができます。
3. 要素の追加と削除
Dictionaryにデータを追加するにはAddメソッドを使います。削除する場合はRemoveメソッドを使います。
dictionary.Add("cat", "ねこ");
dictionary.Remove("dog");
上記の例では、「cat:ねこ」を追加し、「dog:いぬ」を削除しています。
4. データの検索
キーを指定して値を取り出すことができますが、存在しないキーを指定するとエラーになります。そのため、ContainsKeyメソッドを使って安全にチェックするのがおすすめです。
if (dictionary.ContainsKey("book"))
{
Console.WriteLine(dictionary["book"]);
}
else
{
Console.WriteLine("指定したキーは存在しません。");
}
ほん
5. Dictionaryの活用例
例えば、テストの点数を管理するプログラムを考えてみましょう。キーに学生の名前、値に点数を保存すると、名前を指定してすぐに点数を取り出すことができます。
Dictionary<string, int> scores = new Dictionary<string, int>();
scores.Add("田中", 85);
scores.Add("佐藤", 92);
scores.Add("鈴木", 78);
Console.WriteLine("佐藤さんの点数: " + scores["佐藤"]);
佐藤さんの点数: 92
このように、名前と点数を関連づけて保存すれば、検索や更新がとても便利になります。
6. ループで全ての要素を取り出す
foreach文を使えば、Dictionaryに保存されているすべてのキーと値を取り出すことができます。
foreach (var item in scores)
{
Console.WriteLine(item.Key + " さんの点数は " + item.Value + " 点です。");
}
田中 さんの点数は 85 点です。
佐藤 さんの点数は 92 点です。
鈴木 さんの点数は 78 点です。
このように繰り返し処理を使うことで、一覧を表示することができます。
7. Dictionaryを使うメリット
Dictionary型を使うメリットは大きく3つあります。
- キーを使って高速にデータを検索できる
- 重複を許さないキーでデータを一意に管理できる
- 名前や番号など、意味のある情報とセットで保存できる
特に、検索の速さは大きな特徴で、大量のデータを扱うときに威力を発揮します。