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. 该值可以为 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[Object] 属性来添加新元素,方法是设置 @no__t 中不存在的键的值;例如,myCollection["myNonexistentKey"] = myValueYou 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 中已存在指定的键,则设置 @no__t 属性将覆盖旧值。However, if the specified key already exists in the Hashtable, setting the Item[Object] property overwrites the old value. 与此相反,@no__t 0 方法不会修改现有元素。In contrast, the Add method does not modify existing elements.

如果 Count 小于 @no__t 的容量为-1,则此方法是 @no__t 2 操作。If Count is less than the capacity of the Hashtable, this method is an O(1) operation. 如果需要增加容量以容纳新元素,则此方法将成为 @no__t 操作,其中 n CountIf the capacity needs to be increased to accommodate the new element, this method becomes an O(n) operation, where n is Count.

适用于

另请参阅