溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C#中如何使用哈希表

發(fā)布時(shí)間:2021-07-12 09:46:05 來(lái)源:億速云 閱讀:168 作者:Leah 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)C#中如何使用哈希表,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

在.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]);//排序后輸出   }

關(guān)于C#中如何使用哈希表就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI