C# Hashtable完全解説:キー・値ストレージ、操作、実例
C#におけるHashtableとは
Hashtableはデータをキー・値ペアとして格納する非ジェネリックコレクションです。単一値をインデックスごとに保持する配列やリストとは異なり、ハッシュテーブルではユニークなキーを使用して値を直接取得でき、平均O(1)のルックアップ時間を提供します。
典型的なエントリは以下のようになります:
{ "001", ".Net" }
{ "002", "C#" }
{ "003", "ASP.Net" }
ここでキーは"001"、"002"、"003"、対応する値は".Net"、"C#"、"ASP.Net"です。
以下ではHashtableで最もよく使用する操作を解説します。
Hashtableの宣言
Hashtable型とnewキーワードでインスタンス化:
Hashtable ht = new Hashtable();
要素の追加
Addメソッドでキー・値ペアを挿入。キーと値の両方を指定必須:
ht.Add("001", ".Net");
ht.Add("002", "C#");
ht.Add("003", "ASP.Net");
例1 - 全値の表示
以下のコンソールアプリケーションは、ハッシュテーブル作成、要素追加、各値の出力をデモンストレートします:

using System;
using System.Collections;
namespace DemoApplication {
class Program {
static void Main(string[] args) {
Hashtable ht = new Hashtable();
ht.Add("001", ".Net");
ht.Add("002", "C#");
ht.Add("003", "ASP.Net");
ICollection keys = ht.Keys;
foreach (String k in keys) {
Console.WriteLine(ht[k]);
}
Console.ReadKey();
}
}
}
解説
Hashtable変数htを宣言。Addでキー・値ペアを追加。ht.Keysでキーコレクションを取得(ICollectionを返却)。- キーを反復処理し、
ht[key]で関連値を出力。
プログラム実行出力:

一般的なメソッド
ContainsKey
特定キーの存在をチェック:
ht.ContainsKey("001"); // キーが存在すればtrue
ContainsValue
特定値がハッシュテーブルに格納されているか検証:
ht.ContainsValue("C#"); // 値が見つかればtrue
例2 - ContainsKey & ContainsValueの使用
以下は両メソッドをデモンストレートする簡潔なプログラムです:

using System;
using System.Collections;
namespace DemoApplication {
class Program {
static void Main(string[] args) {
Hashtable ht = new Hashtable();
ht.Add("001", ".Net");
ht.Add("002", "C#");
ht.Add("003", "ASP.Net");
Console.WriteLine(ht.ContainsKey("001")); // true
Console.WriteLine(ht.ContainsValue("C#")); // true
Console.ReadKey();
}
}
}
解説
ContainsKeyで"001"の存在を確認。ContainsValueで"C#"が格納されていることを確認。
コンソール表示:

重要なポイント
Hashtableは要素をキー・値ペアとして格納し、キーを知っている場合に高速なルックアップを可能にします。モダンC#では型安全性のためジェネリックDictionary<TKey, TValue>が推奨されますが、レガシーコードや相互運用シナリオではHashtableの理解が依然として価値があります。
C言語
- C# の式、文、ブロック:実践例で徹底理解
- C++ do-while文:構文、実践例、ネストしたループ
- C++ポインタをマスター:概念、例、実践的応用
- C++ char型をマスター:宣言、ASCII、変換テクニック
- C++演算子オーバーロード:コード例付き実践ガイド
- C++関数を実例で徹底解説:基本から応用まで
- C#コレクション実践チュートリアル:実例で学ぶ柔軟なデータ管理
- Python str.count()マスター:文字と部分文字列のカウント実例集
- Python round()関数を実例で徹底解説
- Python map()関数をマスター:構文、例、ベストプラクティス
- Python timeit():実行時間測定の実例付きガイド