为什么我在C#中有Dictionary<string, MyClass> myDic
我无法做到
myDic.Values[1]
因为它无法将字典编入索引,而不是允许我这样做的Vb.Net
myDic.Values(1)
? C#Dictionary和VB.Net之间有什么区别吗?
答案 0 :(得分:4)
不,简短的回答是您无法将索引应用于C#Dictionary<>.ValueCollection.
如下面的评论所述,最接近的C#关联使用myDict.Values.ElementAtOrDefault(1)
来检索值,因为如果该值不存在,它将安全地返回默认值,这与VB.Net行为相匹配。也就是说,这可能表示滥用字典,特别是因为订单无法保证。
通常,从Dictionary中检索值的最有效和最有价值的方法是通过键查找。这只是猜测,但如果C#中不支持对值集合进行索引,只是为了引导您朝着正确的方向前进并防止滥用,我不会感到惊讶。