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

C#のHashtable(ハッシュテーブル)からすべての要素を削除する方法

C#の Hashtable クラスでは、Clear() メソッドを1回呼び出すだけで、格納されているすべてのキーと値のペアを一括して削除できます。この記事では、実際のサンプルコードと実行結果をもとに、Clear() メソッドの使い方をわかりやすく解説します。

Clear() メソッドの基本

Clear() は、Hashtable 内のすべてのエントリ(キーと値のペア)を削除し、要素数(Count プロパティの値)を 0 にするメソッドです。Hashtable 自体は固定サイズではないため、削除後も引き続き新しい要素を追加できます。

サンプルコード①:10個の要素を持つHashtableをクリアする

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      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);

      // すべての要素を削除
      hash.Clear();

      Console.WriteLine("Hashtable の要素数(削除後) = " + hash.Count);
   }
}

実行結果

上記のコードを実行すると、次のような出力が得られます。

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 の要素数(削除後) = 0

このように、hash.Clear() を呼び出した直後に Count を確認すると、要素数が 10 から 0 になっていることがわかります。また、IsFixedSizeFalse であることから、Hashtable が可変サイズであることも確認できます。

サンプルコード②:文字列キーを使った場合

続いて、キーに文字列を使用した別の例を見てみましょう。

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      Hashtable hash = new Hashtable(10);
      hash.Add("One", "100");
      hash.Add("Two", "200");
      hash.Add("Three", "300");
      hash.Add("Four", "400");
      hash.Add("Five", "500");

      Console.WriteLine("Hashtable のキーと値の一覧...");
      foreach(DictionaryEntry entry in hash) {
         Console.WriteLine("{0} : {1}", entry.Key, entry.Value);
      }

      Console.WriteLine("Hashtable の要素数 = " + hash.Count);

      // すべての要素を削除
      hash.Clear();

      Console.WriteLine("Hashtable の要素数(削除後) = " + hash.Count);
   }
}

実行結果

Hashtable のキーと値の一覧...
One : 100
Five : 500
Three : 300
Two : 200
Four : 400
Hashtable の要素数 = 5
Hashtable の要素数(削除後) = 0

出力順序が追加順と異なる点に注目してください。Hashtable は内部的にハッシュ値に基づいて要素を管理しているため、foreach での列挙順序は保証されません。これは正常な動作です。

ポイントまとめ

  • Clear() メソッドを呼び出すと、Hashtable 内のすべてのキーと値のペアが削除される。
  • 削除後の Count は必ず 0 になる。
  • Hashtable は固定サイズではないため、Clear() 後も新しい要素を追加できる。
  • 列挙時の要素の並び順はハッシュ値に依存するため、追加順とは一致しない。

なお、Hashtable は System.Collections 名前空間に属する非ジェネリックなコレクションです。新規開発では型安全な Dictionary<TKey, TValue> の使用が推奨されますが、どちらにも同名の Clear() メソッドが用意されているため、同じ要領で全要素を削除できます。

  1. C#のハッシュテーブル(Hashtable)から要素を削除する方法

    C#のHashtableクラスは、キーと値のペアを格納できるコレクションです。この記事では、ハッシュテーブルから特定の要素を削除する方法を、サンプルコードと実行結果付きでわかりやすく解説します。ハッシュテーブルの準備まず、以下のようなハッシュテーブルを用意します。Hashtable h = new Hashtable(); h.Add(1, Jack); h.Add(2, Henry); h.Add(3, Ben); h.Add(4, Chris);Remove()メソッドで要素を削除するハッシュテーブルから要素を削除するには、Remove()メソッドを使用します。引数には、削除したい要素のキ

  2. JavaでArrayListのすべての要素を削除する方法(clearメソッドの使い方)

    JavaのArrayListからすべての要素を一括で削除したい場合は、clear()メソッドを使用します。この記事では、実際のコード例を通じて、ArrayListの全要素を削除する手順をわかりやすく解説します。1. 要素を持つArrayListを作成するまず、複数の要素を格納したArrayListを用意しましょう。以下の例では、Integer型のArrayListに7つの数値を追加しています。ArrayList<Integer> arrlist = new ArrayList<Integer>(5); arrlist.add(25); arrlist.add(50);