字典的取值
常用的取值方法有2种:
方法1:先判断是否存在,如果存在再进行取值if(aDictionary.ContainsKey(key))
{
var value = Dictionary[key];
}int value;
aDictionary.TryGetValue(key, out value);
项目中,如果只是要取值,推荐使用TryGetValue来获取。
原因:
方法1中ContainsKey执行了一次方法,Dictionary[key]再次执行了一次方法,整个取值过程调用了2次方法。而方法2的TryGetValue只调用了一次方法。当然并不是调用的方法越多越耗性能,看源码后就能理解。
方法1:
public bool ContainsKey(TKey key) {
return FindEntry(key) >= 0;
}
//Dictionary[key]取值原理
public TValue this[TKey key] {
get {
int i = FindEntry(key);
if (i >= 0) return entries[i].value;
ThrowHelper.ThrowKeyNotFoundException();
return default(TValue);
}
set {
Insert(key, value, false);
}
}
<