C# | ゼロからはじめるプログラミング、30日で基礎を学ぶC#:基本機能を身に付ける - Day11:Dictionaryの練習問題

C# 30日で身につけるC#
スポンサーリンク
スポンサーリンク

Day11 Dictionary 練習問題と解答解説

Day11 で学んだ Dictionary<TKey, TValue> / Add / Remove / ContainsKey を確実に定着させるために、 初心者でも理解しやすい練習問題と丁寧な解答・解説をまとめています。 Dictionary は「キーで高速アクセスできる」強力なデータ構造なので、ここでしっかり身につけてください。

Dictionary の基本を確認する

問題

文字列キー・文字列値の Dictionary を作り、 “Taro” → “090-1111-2222” “Hanako” → “080-3333-4444” を登録して、すべて表示してください。

解答と解説

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

phoneBook.Add("Taro", "090-1111-2222");
phoneBook.Add("Hanako", "080-3333-4444");

foreach (var entry in phoneBook)
{
    Console.WriteLine(entry.Key + " : " + entry.Value);
}
C#

Dictionary は「キーと値のペア」を管理するコレクションです。 foreach で回すときは entry.Keyentry.Value を使います。

Add の理解を確認する

問題

学生の名前と点数を管理する Dictionary を作り、 “Taro” → 85 “Hanako” → 92 “Ken” → 76 を登録して表示してください。

解答と解説

Dictionary<string, int> scores = new Dictionary<string, int>();

scores.Add("Taro", 85);
scores.Add("Hanako", 92);
scores.Add("Ken", 76);

foreach (var entry in scores)
{
    Console.WriteLine(entry.Key + " : " + entry.Value);
}
C#

Add は「キーが重複するとエラー」になるため、 実務では ContainsKey と組み合わせて使うことが多いです。

Remove の理解を確認する

問題

Dictionary fruits に “Apple” → 150 “Banana” → 120 “Orange” → 180 が入っています。 “Banana” を削除してすべて表示してください。

解答と解説

Dictionary<string, int> fruits = new Dictionary<string, int>()
{
    { "Apple", 150 },
    { "Banana", 120 },
    { "Orange", 180 }
};

fruits.Remove("Banana");

foreach (var entry in fruits)
{
    Console.WriteLine(entry.Key + " : " + entry.Value);
}
C#

Remove は「キーを指定して削除」します。 削除後にそのキーを使うとエラーになるため注意が必要です。

ContainsKey の理解を確認する

問題

Dictionary items に “Pen” → 100 “Notebook” → 200 “Eraser” → 50 が入っています。 “Notebook” が登録されているか判定して結果を表示してください。

解答と解説

Dictionary<string, int> items = new Dictionary<string, int>()
{
    { "Pen", 100 },
    { "Notebook", 200 },
    { "Eraser", 50 }
};

bool exists = items.ContainsKey("Notebook");
Console.WriteLine(exists);
C#

ContainsKey は「キーが存在するかどうか」を true / false で返します。 Dictionary を安全に扱うための必須テクニックです。

応用問題:電話帳の操作

問題

次の操作を行って電話帳を完成させてください。

  1. “Taro” → “090-1111-2222”
  2. “Hanako” → “080-3333-4444”
  3. “Ken” → “070-5555-6666”
  4. “Hanako” を削除
  5. “Taro” が登録されているか確認
  6. 最後にすべて表示

解答と解説

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

phoneBook.Add("Taro", "090-1111-2222");
phoneBook.Add("Hanako", "080-3333-4444");
phoneBook.Add("Ken", "070-5555-6666");

phoneBook.Remove("Hanako");

if (phoneBook.ContainsKey("Taro"))
{
    Console.WriteLine("Taro は登録されています");
}

foreach (var entry in phoneBook)
{
    Console.WriteLine(entry.Key + " : " + entry.Value);
}
C#

ContainsKey を使うことで「存在しないキーにアクセスするエラー」を防げます。

応用問題:学生成績管理

問題

学生の成績を管理する Dictionary を作り、 “Taro” → 85 “Hanako” → 92 “Ken” → 76 を登録し、 “Ken” を削除して、 “Hanako” の点数を表示してください。

解答と解説

Dictionary<string, int> scores = new Dictionary<string, int>();

scores.Add("Taro", 85);
scores.Add("Hanako", 92);
scores.Add("Ken", 76);

scores.Remove("Ken");

if (scores.ContainsKey("Hanako"))
{
    Console.WriteLine("Hanako の点数: " + scores["Hanako"]);
}
C#

Dictionary は「キーで高速アクセスできる」ため、 成績管理のような検索が多い処理に非常に向いています。

Day11 練習問題まとめ

Day11 の練習問題では、次のポイントを確認しました。

Dictionary<TKey, TValue> → キーと値のペアを管理 Add → 登録(キー重複は不可) Remove → 削除 ContainsKey → 存在確認(安全なアクセスの必須テクニック)

これらを組み合わせることで、 電話帳や学生成績管理など、実用的なデータ管理が簡単に実現できます。

タイトルとURLをコピーしました