Hashtable.Add(Object, Object) Metoda

Definicja

Dodaje element z określonym kluczem i wartością do 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);
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)

Parametry

key
Object

Klucz elementu do dodania.The key of the element to add.

value
Object

Wartość elementu do dodania.The value of the element to add. Wartość może być równa null .The value can be null.

Implementuje

Wyjątki

key to null.key is null.

Element z tym samym kluczem już istnieje w Hashtable .An element with the same key already exists in the Hashtable.

HashtableJest tylko do odczytu.The Hashtable is read-only.

-lub--or- HashtableMa stały rozmiar.The Hashtable has a fixed size.

Przykłady

Poniższy przykład pokazuje, jak dodać elementy do 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
' 

Uwagi

Klucz nie może być null , ale może być wartością.A key cannot be null, but a value can be.

Obiekt, który nie ma korelacji między jego stanem a wartością kodu skrótu, nie powinien zazwyczaj być używany jako klucz.An object that has no correlation between its state and its hash code value should typically not be used as the key. Na przykład obiekty ciągów są lepsze niż obiekty StringBuilder do użycia jako klucze.For example, String objects are better than StringBuilder objects for use as keys.

Można również użyć właściwości, Item[] Aby dodać nowe elementy przez ustawienie wartości klucza, który nie istnieje w, Hashtable na przykład myCollection["myNonexistentKey"] = myValue .You can also use the Item[] property to add new elements by setting the value of a key that does not exist in the Hashtable; for example, myCollection["myNonexistentKey"] = myValue. Jeśli jednak określony klucz już istnieje w Hashtable , ustawienie Item[] Właściwości zastępuje starą wartość.However, if the specified key already exists in the Hashtable, setting the Item[] property overwrites the old value. Z kolei Metoda nie Add modyfikuje istniejących elementów.In contrast, the Add method does not modify existing elements.

Jeśli Count jest mniejsza niż pojemność Hashtable , ta metoda jest O(1) operacją.If Count is less than the capacity of the Hashtable, this method is an O(1) operation. Jeśli pojemność musi zostać zwiększona w celu uwzględnienia nowego elementu, ta metoda będzie O(n) operacją, gdzie n is Count .If the capacity needs to be increased to accommodate the new element, this method becomes an O(n) operation, where n is Count.

Dotyczy

Zobacz też