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

C#のハッシュテーブルでキーが存在するか確認する方法

C#では、Hashtableクラスを使うことで、キーと値のペアを効率的に管理できます。この記事では、Hashtableに要素を追加した後、特定のキーが存在するかどうかをContains()メソッドで確認する方法を解説します。

Hashtableへの要素の追加

まずは、Hashtableコレクションを作成し、要素(キーと値のペア)を追加します。

Hashtable h = new Hashtable();
h.Add(1, "Jack");
h.Add(2, "Henry");
h.Add(3, "Ben");
h.Add(4, "Chris");

Add()メソッドの第一引数がキー、第二引数が値になります。ここでは整数型のキーに対して文字列の値を設定しています。

Contains()メソッドでキーを検索する

特定のキーがHashtable内に存在するかどうかを調べるには、Contains()メソッドを使用します。例えば、キー「3」が存在するか確認する場合は次のように記述します。

h.Contains(3);

キーが存在すればtrue、存在しなければfalseが返されます。なお、ContainsKey()メソッドも同じ動作をするため、どちらを使っても構いません。

サンプルコード全体

以下は、Hashtableに要素を追加し、すべてのキーと値を表示した後、キー「3」の存在を確認する完全なサンプルプログラムです。

using System;
using System.Collections;

public class Demo {
    public static void Main() {
        Hashtable h = new Hashtable();
        h.Add(1, "Jack");
        h.Add(2, "Henry");
        h.Add(3, "Ben");
        h.Add(4, "Chris");

        Console.WriteLine("Keys and Values list:");
        foreach (var key in h.Keys) {
            Console.WriteLine("Key = {0}, Value = {1}", key, h[key]);
        }

        Console.WriteLine("Key 3 exists? " + h.Contains(3));
    }
}

実行結果

Keys and Values list:
Key = 4, Value = Chris
Key = 3, Value = Ben
Key = 2, Value = Henry
Key = 1, Value = Jack
Key 3 exists? True

ポイント解説

  • 要素の順序について: Hashtableは格納順序を保証しないため、出力時のキーの並び順は必ずしも追加順と一致しません。上記の出力例でも、キーが4から1の順で表示されています。
  • foreachループでの走査: h.Keysで全キーを取得し、各キーに対応する値をh[key]で参照できます。
  • Contains()とContainsKey(): どちらもキーの存在確認に使えますが、値の存在確認にはContainsValue()を使用します。

このように、Contains()メソッドを使えば、Hashtable内のキーの有無を簡単に判定できます。大量のデータから高速にキーを検索したい場合に、Hashtableは非常に有用なコレクションです。

  1. Windows 11のプロダクトキーを見つける方法を徹底解説

    Windows 11のプロダクトキーを探しているものの、どこに記載されているのか分からず困っていませんか?保管用として控えておきたいだけの場合でも、その場所がすぐには見つからないことがあります。Windowsのバージョンアップから長い時間が経っていると、プロダクトキーの仕組みが変化していることに気づいていないかもしれません。幸い、Windows 11のプロダクトキーを見つけるのは簡単で、短時間で確認できます。そもそもプロダクトキーが存在しない場合もあるまず知っておくべきなのは、プロダクトキーがそもそも存在しないケースがあるという点です。Windows 11(Windows 10も同様)の一部の

  2. C#でクライアントのIPアドレスを取得する方法を解説

    C#でクライアント(ローカルマシン)のIPアドレスを取得するには、System.Net名前空間に含まれるDNS関連のクラスを利用します。基本的な流れは、「まずホスト名を取得し、そのホスト名からIPアドレスの一覧を取り出す」という2段階です。手順1:Dns.GetHostName()でホスト名を取得する最初に、Dns.GetHostName()メソッドを使って、実行中のマシンのホスト名を取得します。String hostName = string.Empty; hostName = Dns.GetHostName(); Console.WriteLine(Hostname: + hostNam