我尝试检查 null 但编译器警告说这种情况永远不会发生。我应该寻找什么?
最佳答案
假设您希望在键确实存在时获取值,请使用 Dictionary<TKey, TValue>.TryGetValue
:
int value;
if (dictionary.TryGetValue(key, out value))
{
// Key was in dictionary; "value" contains corresponding value
}
else
{
// Key wasn't in dictionary; "value" is now 0
}
(使用 ContainsKey
然后索引器让它查找键两次,这是毫无意义的。)
请注意,即使您使用引用类型,检查 null 也不起作用 - Dictionary<,>
的索引器如果您请求丢失的 key ,将抛出异常,而不是返回 null。 (这是 Dictionary<,>
和 Hashtable
之间的一个很大的区别。)
关于c# - 如果键不存在,C# Dictionary<int, int> 查找会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2138982/