【C#入門】Hashtableからキーを含むICollectionを取得する方法
C#のHashtableクラスでは、Keysプロパティを使うことで、ハッシュテーブルに格納されたすべてのキーを含むICollectionを簡単に取得できます。この記事では、実際のサンプルコードと実行結果をもとに、具体的な使い方をわかりやすく解説します。
基本構文
キーのコレクションを取得するには、以下のようにKeysプロパティを参照します。
ICollection col = hash.Keys;
戻り値はICollection型なので、foreachループなどを使って各キーへ順番にアクセスできます。
例1:文字列型のキーを持つHashtableの場合
まずは、カテゴリ名を値として持つHashtableの例を見てみましょう。
using System;
using System.Collections;
public class Demo {
public static void Main() {
Hashtable hash = new Hashtable();
hash.Add("A", "Electronics");
hash.Add("B", "Appliances");
hash.Add("C", "Pet Supplies");
hash.Add("D", "Books");
hash.Add("E", "Toys");
hash.Add("F", "Footwear");
hash.Add("G", "Clothing");
// キーのコレクションを取得
ICollection col = hash.Keys;
foreach(string str in col)
Console.WriteLine(str + ": " + hash[str]);
}
}出力結果
上記のコードを実行すると、次のような出力が得られます。
G: Clothing A: Electronics B: Appliances C: Pet Supplies D: Books E: Toys F: Footwear
ポイント: Hashtableは要素の順序を保証しないため、出力されるキーの並び順は挿入した順番とは一致しません。これはHashtableの仕様であり、正しい動作です。
例2:整数型のキーを持つHashtableの場合
続いて、キーに整数を使った別の例です。
using System;
using System.Collections;
public class Demo {
public static void Main() {
Hashtable hash = new Hashtable();
hash.Add(1, "AB");
hash.Add(2, "CD");
hash.Add(3, "EF");
hash.Add(4, "GH");
hash.Add(5, "IJ");
hash.Add(6, "KL");
hash.Add(7, "MN");
// キーのコレクションを取得
ICollection col = hash.Keys;
foreach(int str in col)
Console.WriteLine("Key = " + str + ", Value = " + hash[str]);
}
}出力結果
Key = 7, Value = MN Key = 6, Value = KL Key = 5, Value = IJ Key = 4, Value = GH Key = 3, Value = EF Key = 2, Value = CD Key = 1, Value = AB
このように、取得したキーをインデックスとしてhash[key]のように指定すれば、対応する値も同時に取り出せます。
まとめ
Hashtable.Keysプロパティを使うと、すべてのキーを含むICollectionを取得できる。- 取得したコレクションは
foreachで反復処理でき、キーから値へのアクセスも可能。 - Hashtableは順序を保証しないため、ソートされた順番が必要な場合は別途並べ替えを行う必要がある。
なお、新しい開発ではジェネリック版であるDictionary<TKey, TValue>の使用が推奨されます。型安全性やパフォーマンスの面で有利なので、要件に応じて使い分けるとよいでしょう。
-
C#のHashtableクラスにおけるKeysプロパティとは?使い方を解説
C#のHashtableクラスにおけるKeysプロパティは、Hashtableに登録されているすべてのキーを格納したICollectionを取得するためのプロパティです。このプロパティを利用することで、コレクション内の全キーをまとめて取り出すことができます。以下のコードでは、foreachループを使ってコレクションを順に処理し、すべてのキーを取得・表示しています。foreach (int k in h.Keys) { Console.WriteLine(k); }このコードを実行すると、Hashtableに登録されたすべてのキーが次のように表示されます。使用例using System;
-
【C#】Dictionaryからキーのリストを取得する方法
C#では、Dictionary<TKey, TValue> に格納されたすべてのキーを、List<TKey> として簡単に取り出すことができます。この記事では、Keys プロパティを使ってキーの一覧をリスト化し、画面に表示するまでの手順をサンプルコード付きで解説します。 Dictionaryに要素を追加する まずは、辞書(Dictionary)に要素を設定しましょう。 Dictionary<int, string> d = new Dictionary<int, string>(); // 辞書の要素 d.Add(1, "One&q