Hashtable.Add(Object, Object) メソッド

定義

指定したキーおよび値を持つ要素を Hashtable に追加します。Adds an element with the specified key and value into the Hashtable.

public:
 virtual void Add(System::Object ^ key, System::Object ^ value);
public virtual void Add (object key, object value);
abstract member Add : obj * obj -> unit
override this.Add : obj * obj -> unit
Public Overridable Sub Add (key As Object, value As Object)

パラメーター

key
Object

追加する要素のキー。The key of the element to add.

value
Object

追加する要素の値です。The value of the element to add. 値として null を指定できます。The value can be null.

実装

例外

keynull です。key is null.

同じキーを持つ要素が、Hashtable に既に存在します。An element with the same key already exists in the Hashtable.

Hashtable は読み取り専用です。The Hashtable is read-only.

または-or- Hashtable は固定サイズです。The Hashtable has a fixed size.

次の例では、Hashtableに要素を追加する方法を示します。The following example shows how to add elements to the Hashtable.

using namespace System;
using namespace System::Collections;
void PrintKeysAndValues( Hashtable^ myHT );
int main()
{
   
   // Creates and initializes a new Hashtable.
   Hashtable^ myHT = gcnew Hashtable;
   myHT->Add( "one", "The" );
   myHT->Add( "two", "quick" );
   myHT->Add( "three", "brown" );
   myHT->Add( "four", "fox" );
   
   // Displays the Hashtable.
   Console::WriteLine( "The Hashtable contains the following:" );
   PrintKeysAndValues( myHT );
}

void PrintKeysAndValues( Hashtable^ myHT )
{
   Console::WriteLine( "\t-KEY-\t-VALUE-" );
   IEnumerator^ myEnum = myHT->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      DictionaryEntry de = *safe_cast<DictionaryEntry ^>(myEnum->Current);
      Console::WriteLine( "\t{0}:\t{1}", de.Key, de.Value );
   }

   Console::WriteLine();
}

/* 
 This code produces the following output.
 
 The Hashtable contains the following:
         -KEY-   -VALUE-
         two:    quick
         three:  brown
         four:   fox
         one:    The
 */
using System;
using System.Collections;
public class SamplesHashtable
{

   public static void Main()
   {
      // Creates and initializes a new Hashtable.
      var myHT = new Hashtable();
      myHT.Add("one", "The");
      myHT.Add("two", "quick");
      myHT.Add("three", "brown");
      myHT.Add("four", "fox");

      // Displays the Hashtable.
      Console.WriteLine("The Hashtable contains the following:");
      PrintKeysAndValues(myHT);
   }

   public static void PrintKeysAndValues( Hashtable myHT )
   {
      Console.WriteLine("\t-KEY-\t-VALUE-");
      foreach (DictionaryEntry de in myHT)
         Console.WriteLine($"\t{de.Key}:\t{de.Value}");
      Console.WriteLine();
   }
}
/* 
This code produces the following output.

The Hashtable contains the following:
        -KEY-   -VALUE-
        two:    quick
        three:  brown
        four:   fox
        one:    The
*/ 
Imports System.Collections

Public Class SamplesHashtable

    Public Shared Sub Main()

        ' Creates and initializes a new Hashtable.
        Dim myHT As New Hashtable()
        myHT.Add("one", "The")
        myHT.Add("two", "quick")
        myHT.Add("three", "brown")
        myHT.Add("four", "fox")

        ' Displays the Hashtable.
        Console.WriteLine("The Hashtable contains the following:")
        PrintKeysAndValues(myHT)

    End Sub

    Public Shared Sub PrintKeysAndValues(myHT As Hashtable)
        Console.WriteLine(vbTab + "-KEY-" + vbTab + "-VALUE-")
        For Each de As DictionaryEntry In myHT
            Console.WriteLine(vbTab + "{0}:" + vbTab + "{1}", de.Key, de.Value)
        Next
        Console.WriteLine()
    End Sub

End Class


' This code produces the following output.
' 
' The Hashtable contains the following:
'         -KEY-   -VALUE-
'         two:    quick
'         one:    The
'         three:  brown
'         four:   fox
' 

注釈

キーを nullすることはできませんが、値にはを指定できます。A key cannot be null, but a value can be.

その状態とそのハッシュコード値の間に相関関係がないオブジェクトは、通常、キーとして使用されません。An object that has no correlation between its state and its hash code value should typically not be used as the key. たとえば、文字列オブジェクトは、キーとして使用する StringBuilder オブジェクトよりも優れています。For example, String objects are better than StringBuilder objects for use as keys.

また、Item[Object] プロパティを使用して、Hashtableに存在しないキーの値を設定することにより、新しい要素を追加することもできます。たとえば、myCollection["myNonexistentKey"] = myValueのようにします。You can also use the Item[Object] property to add new elements by setting the value of a key that does not exist in the Hashtable; for example, myCollection["myNonexistentKey"] = myValue. ただし、指定したキーが既に Hashtableに存在する場合は、Item[Object] プロパティを設定すると古い値が上書きされます。However, if the specified key already exists in the Hashtable, setting the Item[Object] property overwrites the old value. これに対し、Add メソッドでは、既存の要素は変更されません。In contrast, the Add method does not modify existing elements.

CountHashtableの容量より小さい場合、このメソッドは O(1) 操作です。If Count is less than the capacity of the Hashtable, this method is an O(1) operation. 新しい要素を格納するために容量を増やす必要がある場合、このメソッドは O(n) 操作になります。 nCountです。If the capacity needs to be increased to accommodate the new element, this method becomes an O(n) operation, where n is Count.

適用対象

こちらもご覧ください