単に辞書で a を.ContainsKey
実行する代わりに、使用しなければならないことに本当に腹が立ちます。value==null
実際の例:
var dictionary = new Dictionary<string, FooBar>();
var key = "doesnt exist";
var tmp = dictionary[key] ?? new FooBar(x, y);
代わりに、次の選択肢があります。
var key = "doesnt exist";
FooBar tmp = null;
if (dictionary.ContainsKey(key))
{
tmp = dictionary[key];
} else {
tmp = new FooBar(x, y);
}
またはこれ:
FooBar tmp = null;
if (!Dictionary.TryGetValue(key, out tmp))
{
tmp = new FooBar(x, y);
}
私にとって、このコードは非常に冗長です。IDictionary を実装する (またはキーと値の型へのアクセスを許可する) 組み込みのジェネリック クラスはありますが、キーを検索しようとすると例外がスローされず、代わりに null が返されますか?