2016-02-15 2 views
-2

У меня есть словарь, который получает динамическое значение из словаря, но иногда его исключение. Может кто-то любезно помочь в этомSystem.Collections.Generic.KeyNotFoundException: данный ключ отсутствовал в словаре; exception get in C#

Как я могу проверить значение теста [typeof (T)]. Key.ColumnName, прежде чем делать какое-либо действие в словаре.

Если я использую! String.isnullorEmpty, там сама ошибка его выброса. код

int ID=123; 
private Dictionary<Type, DataTableAttribute> test 
parameters.AddInt32Parameter(test[typeof(T)].Key.ColumnName, ID); 

- благодаря

+1

Что ваш вопрос, это " как я могу попытаться получить значение из словарь и грамотно обрабатывать, если ключ не существует »или« почему в словаре нет ключа »или« что означает это исключение »? –

+0

Кроме того: сообщение, которое вы предоставили, не компилируется вообще, поэтому не может вызывать никаких исключений. – HimBromBeere

ответ

0

Вы можете использовать ContainsKey избежать, за исключением

int ID=123; 
Dictionary<Type, DataTableAttribute> test 

// fill test-dictionary 

if (test.ContainsKey(typeof(T)) 
{ 
    parameters.AddInt32Parameter(test[typeof(T)].Key.ColumnName, ID); 
} 

Alternativly использовать TryGetValue:

DataTableAttribute attr; 
if (test.TryGetValue(typeof(T), out attr) 
{ 
    // ... 
} 
+0

Также можно использовать 'TryGetValue'. –

Смежные вопросы