總結(jié)C#哈希表的用法
C#哈希表,可能對(duì)于很多同行來(lái)說(shuō)已經(jīng)很熟悉.剛開(kāi)始接觸時(shí)有點(diǎn)陌生,后來(lái)用多了也就熟了.當(dāng)然網(wǎng)上關(guān)于這一個(gè)知識(shí)點(diǎn)的介紹很多,不過(guò)這并不妨礙我個(gè)人對(duì)此作出自己的總結(jié)與理解.
在.NET Framework中,Hashtable是System.Collections命名空間提供的一個(gè)容器,用于處理和表現(xiàn)類似key/value的鍵值對(duì),其中key通??捎脕?lái)快速查找,同時(shí)key是區(qū)分大小寫;value用于存儲(chǔ)對(duì)應(yīng)于key的值。Hashtable中key/value鍵值對(duì)均為object類型,所以Hashtable可以支持任何類型的key/value鍵值對(duì).
因此在用的過(guò)程中,需引用:using System.Collections;下面列一下常用的用法,右邊給出相應(yīng)的注釋.
一.常用的方法:
- Hashtable hshTable = new Hashtable(); // 創(chuàng)建哈希表
- hshTable .Add("Person1", "zhanghf"); // 往哈希表里添加鍵值對(duì)
- hshTable .Clear(); //移除哈希表里所有的鍵值對(duì)
- hshTable .Contains("Person1"); //判斷哈希表里是否包含該鍵
- string name = (string)hshTable["Person1"].ToString(); //取哈希表里指定鍵的值
- hshTable.Remove("Person1"); // 刪除哈希表里指定鍵的鍵值對(duì)
- IDictionaryEnumerator en = hshTable.GetEnumerator(); // 遍歷哈希表所有的鍵,讀出相應(yīng)的值
- while (en.MoveNext())
- {
- string str = en.Value.ToString();
- }
二.遍歷C#哈希表:
遍歷哈希表需要用到DictionaryEntry Object,代碼如下:
- for(DictionaryEntry de in ht) //ht為一個(gè)Hashtable實(shí)例
- {
- Console.WriteLine(de.Key);//de.Key對(duì)應(yīng)于key/value鍵值對(duì)key
- Console.WriteLine(de.Value);//de.Key對(duì)應(yīng)于key/value鍵值對(duì)value
- }
三.對(duì)C#哈希表進(jìn)行排序
對(duì)哈希表進(jìn)行排序在這里的定義是對(duì)key/value鍵值對(duì)中的key按一定規(guī)則重新排列,但是實(shí)際上這個(gè)定義是不能實(shí)現(xiàn)的,因?yàn)槲覀儫o(wú)法直接在Hashtable進(jìn)行對(duì)key進(jìn)行重新排列,如果需要Hashtable提供某種規(guī)則的輸出,可以采用一種變通的做法:
- ArrayList akeys=new ArrayList(ht.Keys); //記得導(dǎo)入System.Collections
- akeys.Sort(); //調(diào)用了akeys的按字母順序進(jìn)行排序Sort,這個(gè)很容易單獨(dú)實(shí)現(xiàn)
- for(string skey in akeys)
- {
- Console.Write(skey + ":");
- Console.WriteLine(ht[skey]);//排序后輸出
- }
C#哈希表在編程中用的比較多,功能強(qiáng)大,掌握并能熟悉運(yùn)用是一件很好的事情!
【編輯推薦】