C# 字典 DIctionary

1. 使用字典原因

通常情況下沐旨,我們可以通過int類型的索引號來從數(shù)組或者list集合中查詢所需的數(shù)據(jù)矾湃。但是如果情況稍微復(fù)雜一點:索引號是非int型數(shù)據(jù)比如string或其他類型該如何操作呢。這個時候我們就可以使用字典了匹耕。

2. 什么是字典

顧名思義烛缔,字典是一種讓我們可以通過索引號查詢到特定數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)類型。
關(guān)鍵字 DIctionary

3. 用法及注意事項

  • (1)C#的Dictionary<Tkey柜砾,TValue>類在內(nèi)部維護兩個數(shù)組來實現(xiàn)該功能湃望。一個keys數(shù)組容納要從其映射的鍵,另一個values容納映射到的值痰驱。在Dictionary<Tkey证芭,TValue>集合中插入鍵/值對時,將自動記錄哪個鍵和哪個值關(guān)聯(lián)担映,從而允許開發(fā)人員快速和簡單地獲取具有指定鍵的值废士。
  • (2)C#的Dictionary<Tkey,TValue>集合不能包含重復(fù)的鍵另萤。調(diào)用Add方法添加鍵數(shù)組中已有的鍵將拋出異常湃密。但是,如果使用方括號記法(類似給數(shù)組元素賦值)來添加鍵/值對四敞,就不用擔(dān)心異撤涸矗——如果鍵已經(jīng)存在,其值就會被新值覆蓋忿危〈锕浚可用ContainKey方法測試Dictionary<Tkey,TValue>集合是否已包含特定的鍵铺厨。
  • (3)Dictionary<Tkey缎玫,TValue>集合內(nèi)部采用一種稀疏數(shù)據(jù)結(jié)構(gòu)硬纤,在有大量內(nèi)存可用時才最高效。隨著更多元素的插入赃磨,Dictionary<Tkey筝家,TValue>集合可能快速消耗大量內(nèi)存。
  • (4)用foreach遍歷Dictionary<Tkey邻辉,TValue>集合返回一個KeyValuePair<Tkey溪王,TValue>。該結(jié)構(gòu)包含數(shù)據(jù)項的鍵和值拷貝值骇,可通過Key和Value屬性防蚊每個元素莹菱。元素是只讀的,不能用它們修改Dictionary<Tkey吱瘩,TValue>集合中的數(shù)據(jù)道伟。

4. 實例

  Dictionary<string,string> students=new Dictionary<string,string>();

插入:

       students.Add ("S001","張三");

       students.Add ("S002","李四");

       students["S003"]="王五";

刪除:

       students.Remove ("S000"); //直接刪除建即可

修改:

     直接復(fù)制即可    students["S003"]="王五";

查詢:

    foreach(KeyValuePair<string,string> stu in students)  //查詢所Keys 和Value
          Debug.Log ("Key:"+stu.Key+"  Name:"+stu.Value);

    foreach (string value in students.Values)
          Debug.Log (value);

   foreach (string key in students.Keys)
         Debug.Log (key);

https://www.cnblogs.com/xingyuanzier/p/12031818.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市使碾,隨后出現(xiàn)的幾起案子蜜徽,更是在濱河造成了極大的恐慌,老刑警劉巖票摇,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娜汁,死亡現(xiàn)場離奇詭異,居然都是意外死亡兄朋,警方通過查閱死者的電腦和手機掐禁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颅和,“玉大人傅事,你說我怎么就攤上這事∠坷” “怎么了蹭越?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長教届。 經(jīng)常有香客問我响鹃,道長,這世上最難降的妖魔是什么案训? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任买置,我火速辦了婚禮,結(jié)果婚禮上强霎,老公的妹妹穿的比我還像新娘忿项。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布轩触。 她就那樣靜靜地躺著寞酿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪脱柱。 梳的紋絲不亂的頭發(fā)上伐弹,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音榨为,去河邊找鬼掸茅。 笑死,一個胖子當(dāng)著我的面吹牛柠逞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播景馁,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼板壮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了合住?” 一聲冷哼從身側(cè)響起绰精,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎透葛,沒想到半個月后笨使,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡僚害,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年硫椰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片萨蚕。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡靶草,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出岳遥,到底是詐尸還是另有隱情奕翔,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布浩蓉,位于F島的核電站派继,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏捻艳。R本人自食惡果不足惜驾窟,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望认轨。 院中可真熱鬧纫普,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至假栓,卻和暖如春寻行,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背匾荆。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工拌蜘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人牙丽。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓简卧,卻偏偏與公主長得像,于是被迫代替她去往敵國和親烤芦。 傳聞我的和親對象是個殘疾皇子举娩,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 集合是.NET FCL(Framework Class Library)的重要組成部分,我們平常擼C#代碼時免不了...
    aslbutton閱讀 945評論 0 50
  • C#集合 有兩種主要的集合類型:泛型集合和非泛型集合构罗。 泛型集合被添加在 .NET Framework 2.0 中...
    OctOcean閱讀 835評論 0 3
  • 一铜涉、數(shù)組數(shù)組是一組使用數(shù)字索引的對象,這些對象屬于同一種類型遂唧。雖然C#為創(chuàng)建數(shù)組提供了直接的語言支持芙代,但通用類型系...
    CarlDonitz閱讀 667評論 0 1
  • 數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)是計算機存儲、組織盖彭、管理數(shù)據(jù)的方式 數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合 ...
    JunChow520閱讀 3,613評論 0 4
  • 一纹烹、常用集合類型及概念 1.基本關(guān)系 許多泛型集合類型均為非泛型類型的直接模擬。 Dictionary< TKey...
    aslbutton閱讀 1,429評論 0 49