来自MSDN在字典。TryGetValue方法上的条目:
这个方法结合了ContainsKey方法和如果没有找到键,则value参数得到适当的值 值类型为TValue的默认值;例如,0(零)为
.整数类型,布尔类型为false,引用类型为null 如果您的代码经常尝试访问,请使用TryGetValue方法 不在字典中的键。使用这种方法比较多 比捕获Item抛出的KeyNotFoundException更有效 财产。< / p >这个方法接近于O(1)操作。
从描述中,不清楚它是否比调用ContainsKey然后进行查找更高效,还是更方便。TryGetValue
的实现是否只是调用ContainsKey然后Item,或者实际上比进行单个查找更有效?
换句话说,哪个更有效(即哪个查找更少):
Dictionary<int,int> dict;
//...//
int ival;
if(dict.ContainsKey(ikey))
{
ival = dict[ikey];
}
else
{
ival = default(int);
}
或
Dictionary<int,int> dict;
//...//
int ival;
dict.TryGetValue(ikey, out ival);
注意:我不是在寻找一个基准!