我有一个这样的字典:
Dictionary<string, object> myDictionary = new Dictionary<string, object>();
当我从中获取数据时,我这样做:
myDictionary["IndexingValue"]
大部分时间都在运作。但我只是将其存储的值中的一个更改为null。现在当我做同样的调用(期望为null)时,我得到了异常。当我把它放在调试器中时,它说“无法评估表达式”。
所以我对自己说,“好吧,不管怎样,我的IndexingValue
不在字典里。但是我去了看了我的字典。条款,确定它就在那里。
我想做的是这样的事情:
if (myDictionary["IndexingValue"] != <Could not evaluate expression>)
{
//do some logic.
}
(IE找到一些方法来了解何时无法评估表达式而不必抛出异常。)
可以这样做吗?
答案 0 :(得分:3)
您可以使用
if (myDictionary["IndexingValue"] != null)
{
//do some logic.
}
检查项目是否为空。至于“无法评估表达式”,它只是一个调试器输出,当它由于某种原因不能获得项的值时,只要字典包含给定的键,它就不会在运行时得到这样的错误。要检查密钥是否在字典中,您可以使用ContainsKey方法。