標準例外「System.Collections.Generic.KeyNotFoundException」についてです。
定義
例外
System.Collections.Generic.KeyNotFoundException
原因・意味
コレクションに存在しないキーにアクセスしようとした
対処法
- コレクションに存在するキーを使用する
- キーが存在するかどうかチェックしてからアクセスする。以下記事をご覧ください。
→ [C#] Dictionaryの要素に指定したKeyやValueが存在するか判定する(.ContainsKey、.ContainsValue)
発生例
例)Dictionaryに存在しないキーでアクセスする
using System.Collections.Generic;
// Dictionaryを生成
var dic = new Dictionary<string, int>();
dic.Add("Orange", 100);
dic.Add("Apple", 200);
dic.Add("Peach", 300);
// Dictionary内に存在しないキーにアクセス
int a = dic["Grape"];
System.Collections.Generic.KeyNotFoundException: 'The given key 'Grape' was not present in the dictionary.'
10行目で存在しないキー「Grape」にアクセスしているためエラーが発生します。
備考
- キーが存在しない可能性があるコレクションにアクセスする場合は.ContainsKeyで存在確認すると安全です。