24

当字典中不存在键时,[string]索引器返回什么?Dictionary我是 C# 新手,似乎找不到像 Javadocs 一样好的参考。

我得到null,还是我得到一个例外?

4

4 回答 4

25

如果您指的是 a 的索引器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)
}
于 2008-12-29T14:10:50.190 回答
14

与以往一样,文档是找出答案的方法。

在例外情况下:

KeyNotFoundException
检索到属性,但集合中不存在键

(顺便说一句,我假设你的意思是Dictionary<TKey,TValue>。)

请注意,这与非通用 Hashtable 行为不同。

要在不知道键是否存在时尝试获取键的值,请使用TryGetValue

于 2008-12-29T14:09:09.353 回答
5

我想你可以试试

dict.ContainsKey(someKey)

检查字典是否包含密钥。

谢谢

于 2010-07-01T08:11:40.133 回答
4

作为 using 的替代方法TryGetValue,您可以先检查密钥是否存在 usingdict.ContainsKey(key)从而消除在确定您是否真的需要之前声明值的需要。

于 2008-12-29T14:18:40.317 回答