[問題] 「Dictionary[變數]」的用法?

看板C_Sharp作者 (WildDagger)時間9年前 (2014/08/13 16:09), 編輯推噓1(108)
留言9則, 3人參與, 最新討論串1/1
一直有個搞不懂的疑問是 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屬性) 想問問正確來說到底該怎麼寫才對......(默 --

02/13 15:33,
妳們為何要在雪串放火呢
02/13 15:33

02/13 15:33,
ζζζζζζζζζζζζζζζζζζζζζζζζζζ
02/13 15:33

02/13 15:33,
ξξξξξξξξξξξξξξξξξξξξξξξξξξ
02/13 15:33

02/13 15:34,
ξξξξξξξξξξξξξξξξξξξξξξξξξξ
02/13 15:34

02/13 15:36,
因為原PO手快凍僵了
02/13 15:36

02/13 15:36,
放火燒QB取暖
02/13 15:36
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.136.72 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1407917353.A.137.html

08/13 17:17, , 1F
不太懂"鍵值等於變數值"的意思
08/13 17:17, 1F

08/13 17:17, , 2F
不過可以直接用dictionary[]的方式取得對應的value
08/13 17:17, 2F

08/13 17:18, , 3F
要循覽的話 應該可以用foreach吧
08/13 17:18, 3F

08/13 17:44, , 4F
dictionary.keys.contains()判斷後再抓value
08/13 17:44, 4F

08/13 22:54, , 5F
To樓上,有bool ContainsKey(key),不需要用到Keys.Contains
08/13 22:54, 5F

08/13 22:56, , 6F
to原PO,用dic[TKey]取Value的話,若字典內沒有該索引會擲回
08/13 22:56, 6F

08/13 22:57, , 7F
KeyNotFound的例外,若不確定key一定存在於字典,請用
08/13 22:57, 7F

08/13 22:58, , 8F
ContainsKey先檢查。但我更常用
08/13 22:58, 8F

08/13 22:58, , 9F
bool TryGetValue(key, out value) 來同時測試與取得值。
08/13 22:58, 9F
文章代碼(AID): #1Jwnqf4t (C_Sharp)