tma*_*ino 8 c# dictionary out trygetvalue
在做类似的事情时:
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;
}
Run Code Online (Sandbox Code Playgroud)
有什么方法可以避免索引查找来替换现有值吗?我已经使用TryGetValue验证密钥存在,因此再次通过索引检索值似乎是浪费.
另外,在我的代码的else {}部分中,通常认为在添加新值或替换旧值时使用索引器是一种好习惯,并添加以明确您是在添加而不是替换?或者我应该每次只使用索引器?我学习使用字典的方式,我总是做一个TryGetValue查找,而在else部分我处理没有键存在的情况.
有什么办法可以避免索引查找来替换现有值?
并不是我所知道的-但是字典访问应该非常快,除非您有一个自定义类被严重覆盖GetHashCode。
如果由于双重查找而没有看到性能问题,我将不理会它。