導入
「社員番号から名前を引く」「商品コードから価格を引く」——キーと値のペアで管理し、キーから高速に値を取り出すのがDictionary<TKey, TValue>です。
図解
flowchart LR
K1["キー: "apple""] --> V1["値: 150"]
K2["キー: "banana""] --> V2["値: 100"]
Q["prices["apple"]"] -.->|キーで即座に取得| V1
サンプル
// Dictionary<キーの型, 値の型>
Dictionary<string, int> prices = new();
prices["apple"] = 150; // キー "apple" に 150 を対応づける
prices["banana"] = 100;
Console.WriteLine(prices["apple"]); // 150 ← キーで取り出す
// 存在しないキーを読むと例外。TryGetValue が安全
if (prices.TryGetValue("grape", out int p))
Console.WriteLine(p);
else
Console.WriteLine("その商品はありません"); // こちらが出力される
// 全ペアを回す
foreach (var pair in prices)
Console.WriteLine($"{pair.Key}: {pair.Value}円");
Dictionary<キー型, 値型>で作る辞書[キー] = 値;で登録、辞書[キー]で取得- 存在しないキーの読み取りは例外になるため
TryGetValueが安全 foreachでは.Keyと.Valueで各ペアを取り出す
演習
Dictionary<string, int> stock = new();
stock["ペン"] = 50;
stock["ノート"] = 30;
// TODO: TryGetValue を使い、"ノート" の在庫を "ノートの在庫は30" の形式で出力してください
___
- 期待される出力:
ノートの在庫は30
ヒント1を見る
stock.TryGetValue("ノート", out int n) のnを使います
ヒント2を見る
if (stock.TryGetValue("ノート", out int n)) Console.WriteLine($"ノートの在庫は{n}");
まとめ
Dictionary<TKey, TValue>はキーと値のペアを管理する- キーから高速に値を引ける
- 存在しないキーの読み取りは
TryGetValueで安全に
次回: 重複を許さない集合HashSetです。