我应该一直用字典吗?TryGetValue即使我都想做的是添加/替换值

本文关键字:添加 替换 字典 一直 TryGetValue 我应该 | 更新日期: 2023-09-27 18:10:55

我一直在使用TryGetValue在我的字典中添加/替换数据。只是为了区分添加新的和替换旧的,我同时使用[]和。add()。如果我实际上没有对检索到的值做任何事情,这将导致这样的代码:

private Dictionary<Foo, Bar> dictionary = new Dictionary<Foo, Bar>();
public void Update(Foo foo)
{
    Bar bar;
    if (dictionary.TryGetValue(foo, out bar)
    {
        dictionary [foo] = bar;
    }
    else
    {
        dictionary .Add(foo, bar);
    }
}

如果我实际上没有对检索值做任何事情,是否有理由我不应该用这个替换上面的代码?:

public void Update(Foo foo)
{
    dictionary[foo] = bar;
}

提前感谢。

我应该一直用字典吗?TryGetValue即使我都想做的是添加/替换值

应该使用更简单的代码。
在任何情况下都会更快。(一次哈希查找vs.两次)

更重要的是,它更简单

不,没有理由不使用更短的代码。
事实上,你真的应该使用它,因为它更简单,我们都知道:
代码越简单,错误越少。