雜湊表,可能對於很多同行來說已經很熟悉.剛開始接觸時有點陌生,後來用多了也就熟了.當然網上關於這一個知識點的介紹很多,不過這並不妨礙我個人對此作出自己的總結與理解.
在.NET Framework中,Hashtable是System.Collections命名空間提供的一個容器,用於處理和表現類似key/value的索引值對,其中key通常可用來快速尋找,同時key不允許重複,並且是區分大小寫;value用於儲存對應於key的值。Hashtable中key/value索引值對均為object類型,所以Hashtable可以支援任何類型的key/value索引值對.
因此在用的過程中,需引用:using System.Collections;下面列一下常用的用法,右邊給出相應的注釋.
一.常用的方法:
Hashtable hshTable = new Hashtable(); // 建立雜湊表
hshTable .Add("Person1", "zhanghf"); // 往雜湊表裡添加索引值對
hshTable .Clear(); //移除雜湊表裡所有的索引值對
hshTable .Contains("Person1"); //判斷雜湊表裡是否包含該鍵
string name = (string)hshTable["Person1"].ToString(); //取雜湊表裡指定鍵的值
hshTable.Remove("Person1"); // 刪除雜湊表裡指定鍵的索引值對
IDictionaryEnumerator en = hshTable.GetEnumerator(); // 遍曆雜湊表所有的鍵,讀出相應的值
while (en.MoveNext())
{
string str = en.Value.ToString();
}
二.遍曆雜湊表:
遍曆雜湊表需要用到DictionaryEntry Object,代碼如下:
for(DictionaryEntry de in ht) //ht為一個Hashtable執行個體
{
Console.WriteLine(de.Key);//de.Key對應於key/value索引值對key
Console.WriteLine(de.Value);//de.Key對應於key/value索引值對value
}
通過Keys和Values屬性來得到對應的字串數組。
ICollection keyColl = openWith.Keys;
ICollection valueColl = openWith.Values;
三.對雜湊表進行排序
對雜湊表進行排序在這裡的定義是對key/value索引值對中的key按一定規則重新排列,但是實際上這個定義是不能實現的,因為我們無法直接在Hashtable進行對key進行重新排列,如果需要Hashtable提供某種規則的輸出,可以採用一種變通的做法:
ArrayList akeys=new ArrayList(ht.Keys); //記得匯入System.Collections
akeys.Sort(); //調用了akeys的按字母順序進行排序Sort,這個很容易單獨實現
for(string skey in akeys)
{
Console.Write(skey + ":");
Console.WriteLine(ht[skey]);//排序後輸出
}
雜湊表在C#編程中用的比較多,功能強大,掌握並能熟悉運用是一件很好的事情!