当做类似的事情时:
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 部分我处理不存在键的情况。