Hashtable


  Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key-value的键值对,其中key通常可用来快速查找,同时key是区分大小写且唯一,value用于存储对应于key的值。Hashtable中key-value键值对均为object类型,所以Hashtable可以支持任何类型的key-value键值对。


Hashtable的声明

  声明一个哈希表要用关键字 Hashtable。其语法格式与类的声明相同。

    

    Hashtable ht=new Hashtable(); //声明ht


Hashtable的属性

  Hashtable常用的属性有CountKeysValues,其中:Count是获取Hashtable中的元素个数,Keys表示获取 Hashtable 中的键的集合, Values 表示 Hashtable 中的所有值的集合。


    Hashtable ht = new Hashtable();

    ht.Add(1, 1);

    ht.Add(2, 2);

    ICollection Ic=ht.Keys; // ICollection 定义非泛型集合

    foreach (int i in Ic)

    {

         Console.WriteLine(i.ToString()+" "); // 显示结果为2 1

    }

    ht.add(3,"3");

    ht.add(4,"4");

    ICollection icv=ht.Values;

    forearch(object i in icv)

    {

        Console.WriteLine(i.ToString()+" ");  // 显示结果为4 3 2 1

    }

    int count=ht.Count; //结果为4


Hashtable的方法

  C#为我们提供了一些操作Hashtable常用的方法如下表:


        public virtual void Add( object key, object value ); 
        向 Hashtable 添加一个带有指定的键和值的元素。


        public virtual void Clear(); 
        从 Hashtable 中移除所有的元素。


        public virtual bool ContainsKey( object key ); 
        判断 Hashtable 是否包含指定的键。


        public virtual bool ContainsValue( object value ); 
        判断 Hashtable 是否包含指定的值。


        public virtual void Remove( object key ); 
        从 Hashtable 中移除带有指定的键的元素。


    using System;

    using System.Collections; //使用Hashtable时,必须引入这个命名空间

    namespace test

    {

     class hashtable

     {

         public static void Main()

         {

           Hashtable ht=new Hashtable(); //创建一个Hashtable实例

           //key值唯一,value值可以重复.

           ht.Add("E","e");//添加key/键值对

           ht.Add("A","a");

           ht.Add("C","c");

           ht.Add("B","b");

           string s=(string)ht["A"];

           if(ht.ContainsKey("E")) //判断哈希表是否包含特定键,其返回值为true或false

               Console.WriteLine("the E key:exist");

           ht.Remove("C");//移除一个key/键值对

           Console.WriteLine(ht["A"]);//此处输出a

           ht.Clear();//移除所有元素

           Console.WriteLine(ht["A"]); //此处将不会有任何输出

         }

        }

    }


Hashtable的元素访问

  Hashtable使用键访问元素。如下代码:


    Hashtable ht=new Hashtable();

    ht.Add(1,"1");

    ht.Add(2,"2");

    string value1=ht[1].ToString(); // 结果为1

    string value2=ht[2].ToString();  //结果为2