如何比较“无法评估表达式”?

时间:2010-10-19 19:44:59

标签: c# .net .net-3.5 c#-3.0

我有一个这样的字典:

Dictionary<string, object> myDictionary = new Dictionary<string, object>();

当我从中获取数据时,我这样做:

myDictionary["IndexingValue"]

大部分时间都在运作。但我只是将其存储的值中的一个更改为null。现在当我做同样的调用(期望为null)时,我得到了异常。当我把它放在调试器中时,它说“无法评估表达式”

所以我对自己说,“好吧,不管怎样,我的IndexingValue不在字典里。但是我去了看了我的字典。条款,确定它就在那里。

我想做的是这样的事情:

if (myDictionary["IndexingValue"] != <Could not evaluate expression>)
{
    //do some logic.
}

(IE找到一些方法来了解何时无法评估表达式而不必抛出异常。)

可以这样做吗?

1 个答案:

答案 0 :(得分:3)

您可以使用

if (myDictionary["IndexingValue"] != null)
{
    //do some logic.
}

检查项目是否为空。至于“无法评估表达式”,它只是一个调试器输出,当它由于某种原因不能获得项的值时,只要字典包含给定的键,它就不会在运行时得到这样的错误。要检查密钥是否在字典中,您可以使用ContainsKey方法。