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

【C#】StringDictionaryに特定のキーが存在するかどうかをContainsKeyで確認する方法

C#の StringDictionary クラスにおいて、特定のキーがコレクション内に存在するかどうかを確認するには、ContainsKey() メソッドを使用します。このメソッドは、指定したキーが存在すれば true、存在しなければ false を返します。

ContainsKeyメソッドの基本構文

public virtual bool ContainsKey(string key);
  • key: 存在を確認したいキー(文字列)を指定します。
  • 戻り値: キーが見つかった場合は true、見つからない場合は false

なお、StringDictionary のキーは大文字・小文字を区別せず、内部的に小文字に変換して扱われる点に注意してください。

サンプルコード1

以下は、StringDictionary に特定のキーが含まれているかどうかを確認する例です。

using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
    public static void Main(){
        StringDictionary strDict1 = new StringDictionary();
        strDict1.Add("A", "John");
        strDict1.Add("B", "Andy");
        strDict1.Add("C", "Tim");
        strDict1.Add("D", "Ryan");
        strDict1.Add("E", "Kevin");
        strDict1.Add("F", "Katie");
        strDict1.Add("G", "Brad");
        Console.WriteLine("StringDictionary1 elements...");
        foreach(DictionaryEntry d in strDict1){
            Console.WriteLine(d.Key + " " + d.Value);
        }
        Console.WriteLine("Does StringDictionary1 has key G? "+strDict1.ContainsKey("G"));
        StringDictionary strDict2 = new StringDictionary();
        strDict2.Add("A", "John");
        strDict2.Add("B", "Andy");
        strDict2.Add("C", "Tim");
        strDict2.Add("D", "Ryan");
        strDict2.Add("E", "Kevin");
        strDict2.Add("F", "Katie");
        strDict2.Add("G", "Brad");
        Console.WriteLine("\nStringDictionary2 elements...");
        foreach(DictionaryEntry d in strDict2){
            Console.WriteLine(d.Key + " " + d.Value);
        }
        Console.WriteLine("\nIs Dictionary2 equal to Dictionary1? = "+strDict2.Equals(strDict1));
    }
}

実行結果

上記のコードを実行すると、次のような出力が得られます。

StringDictionary1 elements...
a John
b Andy
c Tim
d Ryan
e Kevin
f Katie
g Brad
Does StringDictionary1 has key G? True
StringDictionary2 elements...
a John
b Andy
c Tim
d Ryan
e Kevin
f Katie
g Brad
Is Dictionary2 equal to Dictionary1? = False

出力結果を見ると、追加時には大文字の「A」〜「G」をキーとして登録していますが、表示される際にはすべて小文字になっていることがわかります。これは StringDictionary がキーを小文字に変換して管理しているためです。

サンプルコード2

続いて、別のキーに対しても ContainsKey() を使って確認する例を見てみましょう。

using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
    public static void Main(){
        StringDictionary strDict1 = new StringDictionary();
        strDict1.Add("A", "John");
        strDict1.Add("B", "Andy");
        strDict1.Add("C", "Tim");
        strDict1.Add("D", "Ryan");
        strDict1.Add("E", "Kevin");
        strDict1.Add("F", "Katie");
        strDict1.Add("G", "Brad");
        Console.WriteLine("StringDictionary1 elements...");
        foreach(DictionaryEntry d in strDict1){
            Console.WriteLine(d.Key + " " + d.Value);
        }
        Console.WriteLine("Does StringDictionary1 has key G? "+strDict1.ContainsKey("G"));
        StringDictionary strDict2 = new StringDictionary();
        strDict2.Add("A", "John");
        strDict2.Add("B", "Andy");
        strDict2.Add("C", "Tim");
        strDict2.Add("D", "Ryan");
        strDict2.Add("E", "Kevin");
        strDict2.Add("F", "Katie");
        strDict2.Add("G", "Brad");
        Console.WriteLine("\nStringDictionary2 elements...");
        foreach(DictionaryEntry d in strDict2){
            Console.WriteLine(d.Key + " " + d.Value);
        }
        Console.WriteLine("\nIs Dictionary2 equal to Dictionary1? = "+strDict2.Equals(strDict1));
        Console.WriteLine("Does StringDictionary2 has key B? "+strDict2.ContainsKey("B"));
    }
}

実行結果

上記のコードを実行すると、次のような出力が得られます。

StringDictionary1 elements...
a John
b Andy
c Tim
d Ryan
e Kevin
f Katie
g Brad
Does StringDictionary1 has key G? True
StringDictionary2 elements...
a John
b Andy
c Tim
d Ryan
e Kevin
f Katie
g Brad
Is Dictionary2 equal to Dictionary1? = False
Does StringDictionary2 has key B? True

まとめ

StringDictionary で特定のキーの存在を確認する場合は、ContainsKey() メソッドを使うのが最も簡単です。また、類似メソッドとして値の存在を確認する ContainsValue() メソッドも用意されているため、用途に応じて使い分けるとよいでしょう。

  1. C#のCollectionに要素が含まれているかどうかを確認する方法

    C#でコレクション(Collection)内に特定の要素が存在するかどうかを確認するには、Contains()メソッドを使用します。このメソッドは、指定した要素がコレクション内に見つかった場合は true、見つからなかった場合は false を返します。以下に具体的なコード例を示します。例1:整数のコレクションの場合using System; using System.Collections.ObjectModel; public class Demo {     public static void Main(){    

  2. C#でHashSetに指定された要素が含まれているか確認する方法

    C#のHashSet<T>に特定の要素が含まれているかどうかを確認するには、Contains()メソッドを使用します。このメソッドは、指定した要素がHashSet内に存在する場合はtrue、存在しない場合はfalseを返します。Contains()メソッドの基本構文public bool Contains (T item);引数には検索対象の要素を渡します。HashSetはハッシュテーブルを基盤としているため、要素の検索はO(1)の計算量で実行でき、非常に高速です。例1:数値型のHashSetでContains()を使う以下は、int型のHashSetに対してContains()メ