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常用的屬性有Count、Keys、Values,其中: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