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

【C#】Hashtableに要素を追加する方法 ― Addメソッドの使い方を実例で解説

C#のHashtable(ハッシュテーブル)に要素を追加するには、Addメソッドを使用します。Addメソッドは第1引数に「キー」、第2引数に「値」を指定して呼び出します。ここでは、実際のコード例をもとに、要素の追加方法と追加後の確認手順をわかりやすく解説します。

コード例:Addメソッドで要素を追加する

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.Count);

      // 要素を1つ追加
      hash.Add("11", "K");

      Console.WriteLine("Hashtableのキーと値のペア...更新後");
      foreach(DictionaryEntry entry in hash) {
         Console.WriteLine("{0} と {1}", entry.Key, entry.Value);
      }
      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のエントリ数 = 10
Hashtableのキーと値のペア...更新後
10 と J
1 と A
2 と B
3 と C
4 と D
5 と E
6 と F
7 と G
8 と H
9 と I
11 と K
Hashtableのエントリ数(更新後) = 11

押さえておきたいポイント

Hashtableは要素の格納順序を保証しないため、foreachで列挙した際の表示順序は追加した順とは一致しません。また、既に存在するキーをAddメソッドで追加しようとすると ArgumentException がスローされる点に注意してください。現在の要素数は Count プロパティで簡単に確認できます。

別の例:IDictionaryEnumeratorでHashtableを反復処理する

続いて、IDictionaryEnumerator を使ってHashtable内のキーと値のペアを順番に取り出す例を見てみましょう。

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      Hashtable hash = new Hashtable(10);
      hash.Add("1", "SUV");
      hash.Add("2", "Electric Cars");
      hash.Add("3", "AUV");
      hash.Add("4", "Utility Vehicle");
      hash.Add("5", "Compact Car");
      hash.Add("6", "Sedan");
      hash.Add("7", "Crossover");

      Console.WriteLine("EnumeratorでHashtableを反復処理...");
      IDictionaryEnumerator demoEnum = hash.GetEnumerator();
      while (demoEnum.MoveNext()) {
         Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
      }
   }
}

実行結果

このコードを実行すると、以下の出力が得られます。

EnumeratorでHashtableを反復処理...
Key = 1, Value = SUV
Key = 2, Value = Electric Cars
Key = 3, Value = AUV
Key = 4, Value = Utility Vehicle
Key = 5, Value = Compact Car
Key = 6, Value = Sedan
Key = 7, Value = Crossover

GetEnumerator() メソッドで取得した列挙子を MoveNext() で進めながら KeyValue プロパティにアクセスすることで、Hashtableの全要素を効率的に走査できます。

  1. C#のHashtableクラスとは?基本の使い方と主要メソッドを解説

    C#のHashtableクラスは、キー(Key)と値(Value)のペアを格納するコレクションを表します。内部ではキーのハッシュコードに基づいて要素が整理されており、キーを指定することでコレクション内の要素へ効率よくアクセスできます。Hashtableクラスでよく使用される主なメソッドは以下の通りです。Hashtableクラスの主なメソッドNo.メソッドと説明1public virtual void Add(object key, object value);指定したキーと値を持つ要素をHashtableに追加します。2public virtual void Clear();Hashtable

  2. Pythonでタプルをリストに変換する方法:全要素の後に指定した文字列を追加する

    タプルをリストに変換し、すべての要素の後に特定の文字列を追加したい場合、リスト内包表記を使用すると簡潔に実現できます。この記事では、その具体的な方法をサンプルコードとともにわかりやすく解説します。サンプルコードmy_tup = (56, 78, 91, 32, 45, 11, 23) print(The tuple is : ) print(my_tup) K = Hi my_result = [elem for sub in my_tup for elem in (sub, K)] print(The tuple after conversion with K is : ) prin