Hashtable.Add(Object, Object) 方法

定義

將有指定索引鍵和數值的項目加入 HashtableAdds 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)

參數

key
Object

要加入的項目的索引鍵。The key of the element to add.

value
Object

要加入的項目的值。The value of the element to add. 這個值可以是 nullThe value can be null.

實作

例外狀況

keynullkey 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.

範例

下列範例顯示如何將專案加入至 HashtableThe 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[] 屬性來加入新的專案,方法是設定不存在於中的索引鍵值 Hashtable ; 例如 myCollection["myNonexistentKey"] = myValueYou 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. 但是,如果指定的索引鍵已經存在於中 Hashtable ,則設定 Item[] 屬性會覆寫舊的值。However, if the specified key already exists in the Hashtable, setting the Item[] property overwrites the old value. 相反地,此 Add 方法不會修改現有的元素。In contrast, the Add method does not modify existing elements.

如果 Count 小於的容量 Hashtable ,則這個方法是一項作業 O(1)If Count is less than the capacity of the Hashtable, this method is an O(1) operation. 如果需要增加容量以容納新的元素,則此方法會變成作業 O(n) ,其中 nCountIf the capacity needs to be increased to accommodate the new element, this method becomes an O(n) operation, where n is Count.

適用於

另請參閱