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

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を使えば、キーと値を個別に取り出しながら反復処理できます。
  1. C#で文字列内の単語数をカウントする方法を解説

    C#で文字列に含まれる単語の数をカウントするには、文字列を先頭から1文字ずつ走査し、空白・タブ・改行などの区切り文字を検出する方法が基本となります。ここでは、その具体的な実装手順とサンプルコードを紹介します。1. 文字列の宣言まず、カウント対象となる文字列を宣言します。string str = Hello World!;2. 区切り文字の検出ロジック次に、whileループを使って文字列全体を走査し、半角スペース( )、改行(\n)、タブ(\t)のいずれかが見つかるたびに単語数のカウンターを増やします。while (a <= str.Length - 1) { if(str[a]=

  2. Redis HLENコマンドの使い方 – ハッシュに含まれるフィールド数を取得する方法

    このチュートリアルでは、RedisのHLENコマンドを使って、指定したキーに保存されているハッシュ値に含まれるフィールドの数を取得する方法を解説します。redis-cliからHLENコマンドを実行することで、ハッシュ内のフィールド総数を簡単に確認できます。 HLENコマンドの構文 redis host:port> HLEN <キー名> 指定したキーに対してHLENコマンドを実行すると、そのハッシュに登録されているフィールドの数が返されます。 実行結果(戻り値) - (integer) ハッシュに含まれるフィールドの数 - 0:キーが存在しない場合 - エラー:キーは存在するが