Цей виняток виникає при спробі індексувати щось, чого там немає, наприклад:
Dictionary<String, String> test = new Dictionary<String,String>();
test.Add("Key1,"Value1");
string error = test["Key2"];
Часто ключовим фактором буде щось на зразок предмета, що, безсумнівно, ускладнює його отримання. Однак ви завжди можете написати наступне (або навіть обернути його способом розширення):
if (test.ContainsKey(myKey))
return test[myKey];
else
throw new Exception(String.Format("Key {0} was not found", myKey));
Або більш ефективний (завдяки @ScottChamberlain)
T retValue;
if (test.TryGetValue(myKey, out retValue))
return retValue;
else
throw new Exception(String.Format("Key {0} was not found", myKey));
Microsoft вирішила цього не робити, можливо, тому, що це було б марно, коли б використовувалось на більшості об'єктів. Це досить просто зробити самостійно, тому просто катайте свої власні!