散列表(Hash table,也叫哈希表),是根據(jù)關(guān)鍵碼值(Key value)而直接進(jìn)行訪問(wèn)的數(shù)據(jù)結(jié)構(gòu)。也就是說(shuō),它通過(guò)把關(guān)鍵碼值映射到表中一個(gè)位置來(lái)訪問(wèn)記錄,以加快查找的速度。這個(gè)映射函數(shù)叫做散列函數(shù),存放記錄的數(shù)組叫做散列表。
今天難得有了半天時(shí)間,鳴炮!任務(wù)都做完了,我終于有點(diǎn)時(shí)間去分析公司這個(gè)項(xiàng)目的代碼,看到了其中有好多的對(duì)Hash table的應(yīng)用。有好多的BLL層的代碼的方法傳入的是hashtable.其實(shí)我所做的模塊中,如果有超過(guò)三個(gè)變量以上的參數(shù)傳入我會(huì)將這些封裝成一個(gè)個(gè)對(duì)象,可能是大學(xué)一直是用c語(yǔ)言,太多了參數(shù)的話就將其弄成結(jié)構(gòu)體,到了C#我就封成對(duì)象,既然做的面向?qū)ο螅瑸槭裁磦鲄?shù)還這樣一個(gè)個(gè)用hashtable 一個(gè)個(gè)的add進(jìn)來(lái)?我表示我初入C#,我沒(méi)有去深究為什么公司大部分的都是用傳入hash table的方式做參數(shù)。廢話不多說(shuō)了。記錄一下對(duì)hash table的操作:
1、hash table要引入命名空間:system.colloctions;
1
2
3
4
5
6
7
8
9
10
11
|
Hashtable lobjHashtable = new Hashtable(); //實(shí)例化 lobjHashtable.Add(Key,value); //增加一個(gè)鍵值對(duì),這里面這個(gè)key要是唯一的! lobjHashtable.Remove(Key); //移除一個(gè)key lobjHashtable.Clear(); //清除所有的鍵值對(duì) lobjHashtable.Contains(Key); // 是否包含某一個(gè)特定的Kye //eg lobjHashtable.Add( "key1" , "value1" ); lobjHashtable.Add( "key2" , "value2" ); lobjHashtable.Add( "key3" , "value3" ); //取出某一個(gè)鍵的值 string lstrTemp = ( string )lobjHashtable[ "key1" ]; |
c# 表的遍歷方法:一下提供兩種遍歷hash table的方法
1
2
3
4
5
6
7
8
9
10
11
|
foreach (DictionaryEntry objDE in lobjHashtable) { string lstrKey = objDE.Key.ToString(); //鍵 string lstrValue = objDE.Value.ToString(); //值 } System.Collections.IDictionaryEnumerator emutor = lobjHashtable.GetEnumerator(); while (emutor.MoveNext()) { string lstrKey = emutor.Key.ToString(); string lstrValue emutor.Value.ToString(); } |
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)服務(wù)器之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
原文鏈接:https://blog.csdn.net/chenqiangdage/article/details/19855317