作者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/cn.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