作者hoyunxian (WildDagger)
看板C_Sharp
標題[問題] 「Dictionary[變數]」的用法?
時間Wed Aug 13 16:09:10 2014
一直有個搞不懂的疑問是
Dictionary到底能不能寫成「Dictionary物件[變數]」
來存取Dictionary物件中「鍵值等於變數值」的物件
我曾經有想過把物件資料庫放到幾個Dictionary物件中,
然後用「Dictionary物件[參數]」的方式去把該參數對應的物件給讀出來
(當然我確定Dictionary物件裡面確實有以該參數值作KEY的VALUE)
例如某幾個物件我給了個獨一無二的ID「Z」、「UX」、「L」等,
然後用這些ID當作KEY,但實際上在巡覽的時候,
我不可能知道當作參數傳過來的ID(Key)其內容是甚麼,
所以都只能寫成var a = dictionary物件[parameter]之類的樣子
只是我每次這樣做都會碰到C#丟ArgumentException出來,
最後的變通方法是用Linq的Where,
可是我實在不想這樣搞(感覺這樣很沒活用到Dictionary的Key屬性)
想問問正確來說到底該怎麼寫才對......(默
--
1F:推 QBian:妳們為何要在雪串放火呢02/13 15:33
2F:推 peterlph:ζζζζζζζζζζζζζζζζζζζζζζζζζζ02/13 15:33
3F:推 henrytsai:ξξξξξξξξξξξξξξξξξξξξξξξξξξ02/13 15:33
4F:推 npc776:ξξξξξξξξξξξξξξξξξξξξξξξξξξ02/13 15:34
5F:推 liuned:因為原PO手快凍僵了02/13 15:36
6F:推 peterlph: 放火燒QB取暖02/13 15:36
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.136.72
※ 文章網址: http://webptt.com/m.aspx?n=bbs/C_Sharp/M.1407917353.A.137.html
7F:→ sosokill: 不太懂"鍵值等於變數值"的意思 08/13 17:17
8F:→ sosokill: 不過可以直接用dictionary[]的方式取得對應的value 08/13 17:17
9F:→ sosokill: 要循覽的話 應該可以用foreach吧 08/13 17:18
10F:→ Ammenze: dictionary.keys.contains()判斷後再抓value 08/13 17:44
11F:推 Litfal: To樓上,有bool ContainsKey(key),不需要用到Keys.Contains 08/13 22:54
12F:→ Litfal: to原PO,用dic[TKey]取Value的話,若字典內沒有該索引會擲回 08/13 22:56
13F:→ Litfal: KeyNotFound的例外,若不確定key一定存在於字典,請用 08/13 22:57
14F:→ Litfal: ContainsKey先檢查。但我更常用 08/13 22:58
15F:→ Litfal: bool TryGetValue(key, out value) 來同時測試與取得值。 08/13 22:58