24

キーがディクショナリに存在しない場合、[string]インデクサーは何を返しますか? Dictionary私は C# が初めてで、Javadocs ほど優れたリファレンスを見つけることができないようです。

または例外が発生しますnullか?

4

4 に答える 4

25

のインデクサーを意味する場合Dictionary<string,SomeType>は、例外 ( KeyNotFoundException) が表示されるはずです。エラーにしたくない場合:

SomeType value;
if(dict.TryGetValue(key, out value)) {
   // key existed; value is set
} else {
   // key not found; value is default(SomeType)
}
于 2008-12-29T14:10:50.190 に答える
14

いつものように、ドキュメントは見つける方法です。

例外の下:

KeyNotFoundException
プロパティが取得され、キーがコレクションに存在しません

(ちなみに、私はあなたが意味していると仮定していますDictionary<TKey,TValue>。)

これは、非ジェネリックな Hashtable の動作とは異なることに注意してください。

キーの値が存在するかどうかわからないときにキーの値を取得するには、 TryGetValueを使用します。

于 2008-12-29T14:09:09.353 に答える
5

私はあなたが試すことができると思います

dict.ContainsKey(someKey)

辞書にキーが含まれているかどうかを確認します。

ありがとう

于 2010-07-01T08:11:40.133 に答える
4

を使用する代わりに、を使用しTryGetValueてキーが存在するかどうかを最初に確認するdict.ContainsKey(key)ことで、実際に必要かどうかを確認する前に値を宣言する必要がなくなります。

于 2008-12-29T14:18:40.317 に答える