首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果密钥不存在,C# Dictionary<int、int>查找会发生什么?

如果密钥不存在,C# Dictionary<int、int>查找会发生什么?
EN

Stack Overflow用户
提问于 2010-01-26 19:17:34
回答 8查看 123.8K关注 0票数 139

我尝试检查null,但是编译器警告说这种情况永远不会发生。我应该寻找什么?

EN

回答 8

Stack Overflow用户

发布于 2010-01-26 19:22:13

如果字典中不包含您的键,则字典将引发KeyNotFound异常。

正如建议的那样,ContainsKey是适当的预防措施。TryGetValue也是有效的。

这允许字典更有效地存储空值。如果不这样做,检查来自[]操作符的null结果将指示NULL值或输入键不存在,这是不好的。

票数 28
EN

Stack Overflow用户

发布于 2010-01-26 19:19:10

如果只是在尝试添加新值之前进行检查,请使用ContainsKey方法:

代码语言:javascript
复制
if (!openWith.ContainsKey("ht"))
{
    openWith.Add("ht", "hypertrm.exe");
}

如果要检查该值是否存在,请使用Jon Skeet的答案中描述的TryGetValue方法。

票数 11
EN

Stack Overflow用户

发布于 2010-01-26 19:19:41

在尝试提取该值之前,您应该检查Dictionary.ContainsKey(int键)。

代码语言:javascript
复制
Dictionary<int, int> myDictionary = new Dictionary<int, int>();
myDictionary.Add(2,4);
myDictionary.Add(3,5);

int keyToFind = 7;
if(myDictionary.ContainsKey(keyToFind))
{
    myValueLookup = myDictionay[keyToFind];
    // do work...
}
else
{
    // the key doesn't exist.
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2138982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档