資源描述:
《c#中dictionary的用法及用途實(shí)例》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、C#中Dictionary的用法及用途實(shí)例轉(zhuǎn)Dictionary是一個(gè)泛型他本身有集合的功能有時(shí)候可以把它看成數(shù)組他的結(jié)構(gòu)是這樣的:Dictionary<[key],[value]>他的特點(diǎn)是存入對(duì)象是需要與[key]值一一對(duì)應(yīng)的存入該泛型通過某一個(gè)一定的[key]去找到對(duì)應(yīng)的值舉個(gè)例子://實(shí)例化對(duì)象Dictionarydic=newDictionary();//對(duì)象打點(diǎn)添加dic.Add(1,"one");dic.Add(2,"two");dic.Add(3,"o
2、ne");//提取元素的方法stringa=dic[1];stringb=dic[2];stringc=dic[3];//1、2、3是鍵,分別對(duì)應(yīng)“one”“two”“one”//上面代碼中分別把值賦給了a,b,c//注意,鍵相當(dāng)于找到對(duì)應(yīng)值的唯一標(biāo)識(shí),所以不能重復(fù)//但是值可以重復(fù)如果你還看不懂我最后給你舉一個(gè)通俗的例子有一缸米,你想在在每一粒上都刻上標(biāo)記,不重復(fù),相當(dāng)于“鍵”當(dāng)你找的時(shí)候一一對(duì)應(yīng)不會(huì)找錯(cuò),這就是這個(gè)泛型的鍵的-作用,而米可以一樣,我的意思你明白了吧?--------------------------------------
3、-----------------------------------c#對(duì)dictionary類進(jìn)行排序用什么接口實(shí)現(xiàn)如果使用.NetFramework3.5的話,事情就很簡(jiǎn)單了。呵呵。如果不是的話,還是自己寫排序吧。usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Linq;namespaceDictionarySorting{classProgram{staticvoidMain(string[]args){Dictionary4、ing>dic=newDictionary();dic.Add(1,"HaHa");dic.Add(5,"HoHo");dic.Add(3,"HeHe");dic.Add(2,"HiHi");dic.Add(4,"HuHu");varresult=frompairindicorderbypair.Keyselectpair;foreach(KeyValuePairpairinresult){Console.WriteLine("Key:{0},Value:{1}",pair.Key,pair.Va
5、lue);}Console.ReadKey();}}}【執(zhí)行結(jié)果】Key:1,Value:HaHaKey:2,Value:HiHiKey:3,Value:HeHeKey:4,Value:HuHuKey:5,Value:HoHoDictionary的基本用法。假如需求:現(xiàn)在要導(dǎo)入一批數(shù)據(jù),這些數(shù)據(jù)中有一個(gè)稱為公司的字段是我們數(shù)據(jù)庫里已經(jīng)存在了的,目前我們需要把每個(gè)公司名字轉(zhuǎn)為ID后才存入數(shù)據(jù)庫。分析:每導(dǎo)一筆記錄的時(shí)候,就把要把公司的名字轉(zhuǎn)為公司的ID,這個(gè)不應(yīng)該每次都查詢一下數(shù)據(jù)庫的,因?yàn)檫@太耗數(shù)據(jù)庫的性能了。解決方案:在業(yè)務(wù)層里先把所有的公司
6、名稱及相應(yīng)的公司ID一次性讀取出來,然后存放到一個(gè)Key和Value的鍵值對(duì)里,然后實(shí)現(xiàn)只要把一個(gè)公司的名字傳進(jìn)去,就可以得到此公司相應(yīng)的公司ID,就像查字典一樣。對(duì),我們可以使用字典Dictionary操作這些數(shù)據(jù)。示例:SetKeyValue()方法相應(yīng)于從數(shù)據(jù)庫里讀取到了公司信息。//////定義Key為string類型,Value為int類型的一個(gè)Dictionary//////protectedDictionarySetKeyValue
7、(){Dictionarydic=newDictionary();dic.Add("公司1",1);dic.Add("公司2",2);dic.Add("公司3",3);dic.Add("公司4",4);returndic;}//////得到根據(jù)指定的Key行到Value///protectedvoidGetKeyValue(){DictionarymyDictionary=SetKeyValue();//測(cè)試得到公司2的值intdire
8、ctorValue=myDictionary["公司2"];Response.Write("公司2的value是:"+directorValue.To