C#:Dictionary的[string]索引器返回什么?

时间:2008-12-29 14:04:00

标签: c# dictionary

当词典中不存在键时,[string]的{​​{1}}索引器会返回什么?我是C#的新手,我似乎无法找到与Javadocs一样好的参考。

我得到Dictionary,还是得到例外?

4 个答案:

答案 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)检查密钥是否存在,从而无需在找出实际需要之前声明值。