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

C#でHashtable(ハッシュテーブル)に特定の値が含まれているか確認する方法

C#のHashtableに特定の値(Value)が含まれているかどうかを確認するには、ContainsValueメソッドを使用します。このメソッドは、指定した値がHashtable内に存在する場合はtrue、存在しない場合はfalseを返します。

以下に具体的なコード例を示します。

サンプルコード1

using System;
using System.Collections;

public class Demo {
   public static void Main(){
      Hashtable hash = new Hashtable();
      hash.Add("1", "A");
      hash.Add("2", "B");
      hash.Add("3", "C");
      hash.Add("4", "D");
      hash.Add("5", "E");
      hash.Add("6", "F");
      hash.Add("7", "G");
      hash.Add("8", "H");
      hash.Add("9", "I");
      hash.Add("10", "J");

      Console.WriteLine("Hashtableのキーと値の一覧...");
      foreach(DictionaryEntry entry in hash){
         Console.WriteLine("{0} and {1} ", entry.Key, entry.Value);
      }

      Console.WriteLine("Hashtableは固定サイズか? = " + hash.IsFixedSize);
      Console.WriteLine("Hashtableは読み取り専用か? = " + hash.IsReadOnly);
      Console.WriteLine("Hashtableに値'H'は存在するか? = " + hash.ContainsValue("H"));
   }
}

実行結果

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

Hashtableのキーと値の一覧...
10 and J
1 and A
2 and B
3 and C
4 and D
5 and E
6 and F
7 and G
8 and H
9 and I
Is Hashtable having fixed size? = False
If Hashtable read-only? = False
The Hashtable consists of the value? = True

実行結果からわかるように、hash.ContainsValue("H")は値「H」がHashtable内に存在するため、Trueを返しています。また、IsFixedSizeIsReadOnlyはどちらもFalseであり、このHashtableはサイズ変更可能で読み書き可能であることを示しています。

サンプルコード2:キーと値の両方を確認する

次に、ContainsKeyメソッドとContainsValueメソッドを組み合わせて、キーと値の両方の存在を確認する例を見てみましょう。

using System;
using System.Collections;

public class Demo {
   public static void Main(){
      Hashtable hash = new Hashtable();
      hash.Add("One", "Katie");
      hash.Add("Two", "John");
      hash.Add("Three", "Barry");
      hash.Add("Four", "Mark");
      hash.Add("Five", "Harry");
      hash.Add("Six", "Nathan");
      hash.Add("Seven", "Tom");
      hash.Add("Eight", "Andy");
      hash.Add("Nine", "Illeana");
      hash.Add("Ten", "Tim");

      Console.WriteLine("Hashtableのキーと値の一覧...");
      foreach(DictionaryEntry entry in hash){
         Console.WriteLine("{0} and {1} ", entry.Key, entry.Value);
      }

      Console.WriteLine("Hashtableは固定サイズか? = " + hash.IsFixedSize);
      Console.WriteLine("Hashtableは読み取り専用か? = " + hash.IsReadOnly);
      Console.WriteLine("Hashtableにキー'Seven'は存在するか? = " + hash.ContainsKey("Seven"));
      Console.WriteLine("Hashtableに値'Illeana'は存在するか? = " + hash.ContainsValue("Illeana"));
   }
}

実行結果

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

Hashtableのキーと値の一覧...
One and Katie
Ten and Tim
Five and Harry
Three and Barry
Seven and Tom
Two and John
Four and Mark
Eight and Andy
Nine and Illeana
Six and Nathan
Is Hashtable having fixed size? = False
If Hashtable read-only? = False
The Hashtable consists of the key? = True
The Hashtable consists of the value? = True

ポイントまとめ

  • ContainsValueメソッド:Hashtable内に指定したが存在するかどうかを確認し、結果をブール値(true/false)で返します。
  • ContainsKeyメソッド:Hashtable内に指定したキーが存在するかどうかを確認します。
  • IsFixedSizeプロパティ:Hashtableが固定サイズかどうかを示します。
  • IsReadOnlyプロパティ:Hashtableが読み取り専用かどうかを示します。

なお、Hashtableの要素はハッシュテーブルの内部構造により順序が保証されないため、出力されるキーと値のペアの並び順は追加順とは異なる場合があることに注意してください。

  1. 【C#】SortedSetに特定の要素が含まれているか確認する方法(Containsメソッドの使い方)

    C#のSortedSet<T>クラスには、指定した要素がセット内に存在するかどうかを判定するためのContainsメソッドが用意されています。この記事では、Containsメソッドを使った具体的なコード例とその実行結果を紹介します。ContainsメソッドとはContains(T item)は、SortedSet内に指定した要素が存在する場合はtrue、存在しない場合はfalseを返すメソッドです。SortedSetは内部でソートされた状態を維持しているため、高速な検索が可能です。サンプルコード1:文字列のSortedSetで要素を検索するまずは、文字列型のSortedSetに対し

  2. 【Java入門】配列に指定した値が含まれているかを判定する方法

    この記事では、Javaで配列の中に特定の値が含まれているかどうかを確認する方法を解説します。基本的な考え方は、配列の各要素を順番に走査(イテレート)し、検索したい値と比較するというものです。処理の流れ(アルゴリズム)処理を開始する整数型の変数(my_input、i、array_size)とboolean型の変数(my_check)、そして整数型配列(my_array)を宣言するユーザーから値を入力してもらう、またはあらかじめ値を定義しておくforループで配列の要素を順に取り出し、検索対象の値と比較する一致する要素が見つかれば「含まれている」、見つからなければ「含まれていない」と判定する結果を表