我必须使用而不是仅仅在字典中.ContainsKey
做 a真的让我很恼火。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?