C#のHashtableに含まれるキーと値のペアの数を数える方法
C#のHashtable(ハッシュテーブル)に格納されているキーと値のペアの数を調べるには、Countプロパティを使用します。この記事では、サンプルコードと実行結果をもとに、基本的な使い方をわかりやすく解説します。
Countプロパティとは
HashtableクラスのCountプロパティは、コレクション内に現在含まれているキーと値のペアの数をint型で返します。Addメソッドで要素を追加したり、Removeメソッドで削除したりすると、この値は自動的に更新されます。
サンプルコード1:基本的な使い方
まずは、Hashtableに3つの要素を追加した時点と、さらに2つ追加した後のCountの値を比較する例を見てみましょう。
using System;
using System.Collections;
public class Demo {
public static void Main() {
Hashtable hash = new Hashtable();
hash.Add("A", "SUV");
hash.Add("B", "MUV");
hash.Add("C", "AUV");
Console.WriteLine("Hashtableの要素...");
foreach(DictionaryEntry d in hash) {
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("キー/値ペアの数 = " + hash.Count);
hash.Add("D", "Utility Vehicle");
hash.Add("E", "Convertible");
Console.WriteLine("キー/値ペアの数(更新後) = " + hash.Count);
}
}
実行結果
Hashtableの要素... C AUV A SUV B MUV キー/値ペアの数 = 3 キー/値ペアの数(更新後) = 5
ポイント
Hashtableは要素の順序を保証しないため、foreachで列挙した際の表示順序は追加した順序と異なることがあります。また、要素を2つ追加したことで、Countの値が「3」から「5」へ自動的に更新されているのがわかります。
サンプルコード2:列挙子との組み合わせ
次に、初期容量を指定してHashtableを作成し、IDictionaryEnumeratorを使って全要素を列挙しながら、CountプロパティやIsFixedSizeプロパティの値を確認する例を紹介します。
using System;
using System.Collections;
public class Demo {
public static void Main() {
// 初期容量10でHashtableを作成
Hashtable hash = new Hashtable(10);
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} と {1}", entry.Key, entry.Value);
}
Console.WriteLine("Hashtableは固定サイズか? = " + hash.IsFixedSize);
Console.WriteLine("Hashtable内のキー/値ペアの数 = " + hash.Count);
Console.WriteLine("\n列挙子でHashtableを反復処理...");
IDictionaryEnumerator demoEnum = hash.GetEnumerator();
while (demoEnum.MoveNext())
Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
}
}
実行結果
Hashtableのキーと値のペア... 10 と J 1 と A 2 と B 3 と C 4 と D 5 と E 6 と F 7 と G 8 と H 9 と I Hashtableは固定サイズか? = False Hashtable内のキー/値ペアの数 = 10 列挙子でHashtableを反復処理... Key = 10, Value = J Key = 1, Value = A Key = 2, Value = B Key = 3, Value = C Key = 4, Value = D Key = 5, Value = E Key = 6, Value = F Key = 7, Value = G Key = 8, Value = H Key = 9, Value = I
まとめ
- Hashtable内のキーと値のペアの数はCountプロパティで取得できます。
- 要素の追加・削除に応じて、Countの値は自動的に更新されます。
IsFixedSizeプロパティを使うと、Hashtableが固定サイズかどうかを確認できます。GetEnumerator()で取得したIDictionaryEnumeratorを使えば、キーと値を個別に取り出しながら反復処理できます。
-
C#で文字列内の単語数をカウントする方法を解説
C#で文字列に含まれる単語の数をカウントするには、文字列を先頭から1文字ずつ走査し、空白・タブ・改行などの区切り文字を検出する方法が基本となります。ここでは、その具体的な実装手順とサンプルコードを紹介します。1. 文字列の宣言まず、カウント対象となる文字列を宣言します。string str = Hello World!;2. 区切り文字の検出ロジック次に、whileループを使って文字列全体を走査し、半角スペース( )、改行(\n)、タブ(\t)のいずれかが見つかるたびに単語数のカウンターを増やします。while (a <= str.Length - 1) { if(str[a]=
-
Redis HLENコマンドの使い方 – ハッシュに含まれるフィールド数を取得する方法
このチュートリアルでは、RedisのHLENコマンドを使って、指定したキーに保存されているハッシュ値に含まれるフィールドの数を取得する方法を解説します。redis-cliからHLENコマンドを実行することで、ハッシュ内のフィールド総数を簡単に確認できます。 HLENコマンドの構文 redis host:port> HLEN <キー名> 指定したキーに対してHLENコマンドを実行すると、そのハッシュに登録されているフィールドの数が返されます。 実行結果(戻り値) - (integer) ハッシュに含まれるフィールドの数 - 0:キーが存在しない場合 - エラー:キーは存在するが