C#字典TryGetValue有int值,如何避免双重查找

在做类似的事情时:
int value;
if (dict.TryGetValue(key,out value))
{
    if (condition)
    {
        //value = 0;  this copies by value so it doesn't change the existing value
        dict[key] = 0;
    }
}
else
{
    dict[key] = 0;
}

有什么方法可以避免索引查找来替换现有值吗?我已经使用TryGetValue验证密钥存在,因此再次通过索引检索值似乎是浪费.

另外,在我的代码的else {}部分中,通常认为在添加新值或替换旧值时使用索引器是好的做法,并添加以清楚地表明您是在添加而不是替换?或者我应该每次只使用索引器?我学习使用字典的方式,我总是做一个TryGetValue查找,而在else部分我处理没有键存在的情况.

解决方法

Is there any way I can avoid index lookup to replace the existing value?

不是我所知道的 – 但字典访问应该非常快,除非你有一个自定义类被覆盖GetHashCode很差.

如果由于双重查找而没有看到性能问题,我会不管它.

相关文章

原文地址:http://msdn.microsoft.com/en-us/magazine/cc163...
前言 随着近些年微服务的流行,有越来越多的开发者和团队所采...
最近因为比较忙,好久没有写博客了,这篇主要给大家分享一下...
在多核CPU在今天和不久的将来,计算机将拥有更多的内核,Mic...
c语言输入成绩怎么判断等级
字符型数据在内存中的存储形式是什么