Как сравнить с «Не удалось оценить выражение»? - PullRequest
1 голос
/ 19 октября 2010

У меня есть словарь, подобный следующему:

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

Когда я получаю из него данные, я делаю это так:

myDictionary["IndexingValue"]

Большую часть времениработает.Но я просто изменил одно из значений, которые он хранит, чтобы быть нулевым.Теперь, когда я делаю тот же вызов (ожидая ноль), я получаю и исключение.Когда я помещаю его в отладчик, он говорит: «Не удалось оценить выражение» .

Поэтому я сказал себе: «Хорошо, почему-то моего IndexingValue нет в словаре. НоЯ пошел и посмотрел на myDictionary.entries и достаточно уверен, что он там есть.

Что я хочу сделать, это примерно так:

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

(IE находит какой-то способ узнать, когда выражениене может быть оценено без необходимости генерировать исключение.)

Можно ли это сделать?

1 Ответ

3 голосов
/ 19 октября 2010

Вы можете использовать

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

, чтобы проверить, является ли элемент нулевым или нет.Что касается выражения «Не удалось оценить», то это просто выходные данные отладчика, когда он по какой-то причине не может получить значение элемента, поэтому, если словарь содержит данный ключ, вы не получите такую ​​ошибку во время выполнения.Чтобы проверить, находится ли ключ в словаре, вы можете использовать метод ContainsKey .

...