C# 和 VB.Net 之间的字典区别

Dictionary Difference between C# and VB.Net

为什么如果我在 C# 中有一个 Dictionary<string, MyClass> myDic 我做不到 myDic.Values[1] 因为它不能索引字典而不是 Vb.Net 允许我做 myDic.Values(1) ? C# 字典和 VB.Net 之间有什么区别吗?

不,简短的回答是您不能将索引应用于 C# Dictionary<>.ValueCollection.

正如下面评论中提到的,最接近的 C# 相关性是使用 myDict.Values.ElementAtOrDefault(1) 检索值,因为如果值不存在,它将安全地 return 默认值,这与 VB.Net行为。也就是说,这可能表示滥用字典,特别是因为不能保证顺序。

通常,从字典中检索值的最有效和最有价值的方法是通过键查找。这只是猜测,但如果 C# 不支持值集合的索引只是为了引导您朝着正确的方向并防止滥用,我也不会感到惊讶。