当词典中不存在键时,[string]
的{{1}}索引器会返回什么?我是C#的新手,我似乎无法找到与Javadocs一样好的参考。
我得到Dictionary
,还是得到例外?
答案 0 :(得分:25)
如果您指的是Dictionary<string,SomeType>
的索引器,那么您应该会看到异常(KeyNotFoundException
)。如果您不希望它出错:
SomeType value;
if(dict.TryGetValue(key, out value)) {
// key existed; value is set
} else {
// key not found; value is default(SomeType)
}
答案 1 :(得分:14)
与以往一样,documentation是找出答案的方法。
在例外情况下:
KeyNotFoundException The property is retrieved and key does not exist in the collection
(顺便说一下,我假设你的意思是Dictionary<TKey,TValue>
。)
请注意,这与non-generic Hashtable behaviour不同。
要在不知道密钥是否存在时尝试获取密钥值,请使用TryGetValue。
答案 2 :(得分:5)
我想你可以试试
dict.ContainsKey(someKey)
检查词典是否包含密钥。
由于
答案 3 :(得分:4)
除了使用TryGetValue
之外,您可以先使用dict.ContainsKey(key)
检查密钥是否存在,从而无需在找出实际需要之前声明值。