System.Collections.Hashtable.Add 方法

方法描述

将带有指定键和值的元素添加到 Hashtable 中。

语法定义(C# System.Collections.Hashtable.Add 方法 的用法)

public virtual void Add(
	Object key,
	Object value
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
key System-Object 要添加的元素的键。
value System-Object 要添加的元素的值。该值可以为 null。
返回值 void

提示和注释

键不能为 null,但值可以。

其状态和哈希代码值之间不相关的对象通常不应用作键。 例如,String 对象比 StringBuilder 对象更适于用作键。

还可以使用 Item 属性来添加新元素,方法是设置某个键的值,该值在 Hashtable 中不存在,例如,myCollection["myNonexistentKey"] = myValue。 但是,如果指定的键已经存在于 Hashtable 中,则设置 Item 属性将覆盖旧值。 相比之下,Add 方法不修改现有元素。

如果 Count 小于 Hashtable 的容量,则此方法的运算复杂度是 O(1)。 如果需要增加容量以容纳新元素,则此方法的运算复杂度成为 O(n),其中 n 为 Count。

System.Collections.Hashtable.Add 方法例子

下面的示例说明如何将元素添加到 Hashtable 中。

using System;
using System.Collections;
public class SamplesHashtable  {

   public static void Main()  {

      // Creates and initializes a new Hashtable.
      Hashtable 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{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
*/

异常

异常 异常描述
ArgumentNullException key 为 null。
ArgumentException Hashtable 中已存在具有相同键的元素。
NotSupportedException
  • Hashtable 是只读的。
  • Hashtable 具有固定大小。

命名空间

namespace: System.Collections

程序集: mscorlib(在 mscorlib.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。