C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でDictionary(辞書)のキーを検索する方法【ContainsKey()の使い方】

C#のDictionary(辞書)は、キーと値のペアを格納できる便利なコレクションです。この記事では、特定のキーがDictionary内に存在するかどうかを確認する方法を、サンプルコード付きでわかりやすく解説します。

Dictionaryの準備

まず、要素を含むDictionaryコレクションを作成しましょう。以下の例では、カテゴリIDをキー、商品カテゴリ名を値として格納しています。

Dictionary<int, string> d = new Dictionary<int, string>() {
    {1, "Electronics"},
    {2, "Clothing"},
    {3, "Toys"},
    {4, "Footwear"},
    {5, "Accessories"}
};

ContainsKey()メソッドでキーの存在を確認する

たとえば、「キー5が存在するかどうか」を確認したい場合には、ContainsKey()メソッドを使用します。このメソッドは、指定したキーが見つかった場合にtrueを返し、見つからない場合はfalseを返します。

d.ContainsKey(5);

ContainsKey()メソッドは内部的にハッシュテーブルを利用しているため、ほぼO(1)の高速な検索が可能です。大量のデータを扱う場合でもパフォーマンスを気にせず使用できます。

サンプルコード全体

それでは、Dictionaryの内容を表示しながら、キー5の存在確認を行う完全なコードを見てみましょう。

using System;
using System.Collections.Generic;

public class Program {
    public static void Main() {
        Dictionary<int, string> d = new Dictionary<int, string>() {
            {1, "Electronics"},
            {2, "Clothing"},
            {3, "Toys"},
            {4, "Footwear"},
            {5, "Accessories"}
        };

        // Dictionaryの全要素を表示
        foreach (KeyValuePair<int, string> ele in d) {
            Console.WriteLine("Key = {0}, Value = {1}", ele.Key, ele.Value);
        }

        // キー5が存在するか確認
        Console.WriteLine("Key 5 exists? " + d.ContainsKey(5));
    }
}

実行結果

Key = 1, Value = Electronics
Key = 2, Value = Clothing
Key = 3, Value = Toys
Key = 4, Value = Footwear
Key = 5, Value = Accessories
Key 5 exists? True

実行結果の最後の行「Key 5 exists? True」から、キー5がDictionaryに存在することが確認できました。

補足:TryGetValue()メソッドとの使い分け

キーの存在確認に加えて、対応する値も取得したい場合はTryGetValue()メソッドが便利です。このメソッドを使えば、ContainsKey()で確認してから値を取り出すという2段階の処理を、1回の呼び出しで実現できます。

if (d.TryGetValue(5, out string value)) {
    Console.WriteLine($"キー5の値: {value}");
} else {
    Console.WriteLine("キー5は存在しません");
}

用途に応じてContainsKey()とTryGetValue()を使い分けることで、より効率的で安全なコードを書くことができます。

  1. Pythonで辞書から値の大きい上位3件を取得する方法

    この記事では、Pythonの辞書(dict)から値が最も大きい上位3件の要素を取り出す方法について解説します。 課題 与えられた辞書から、値の大きい上位3件の「キー : 値」のペアを出力することを目標とします。 これを実現する主なアプローチとして、以下の2つの方法があります。 方法1:collections.Counter() を使う 標準ライブラリの collections モデルにある Counter クラスを利用すると、most_common() メソッドで簡単に上位N件を取得できます。 コード例 # collectionsモジュールをインポート from collections imp

  2. 【Python】辞書から最も大きい3つの値を取得する方法

    この記事では、Pythonの辞書(dict)に格納された値の中から、最も大きい3つの値を取り出して表示する方法を解説します。 問題文 与えられた辞書から、値が大きい順に上位3つの「キー:値」のペアを抽出し、画面に表示します。 方法1:collectionsモジュールのCounter関数を使う collectionsモジュールのCounterクラスは、most_common()メソッドを提供しています。引数に個数を指定すると、値の大きい順に(キー, 値)のタプルをリスト形式で取得できます。 サンプルコード from collections import Counter # 初期化した辞書 m