0

我一直在使用 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;
}

先感谢您。

4

2 回答 2

5

您应该使用更简单的代码。
在所有情况下都会更快。(一个哈希查找与两个)

更重要的是,它更简单。

于 2013-04-24T15:13:30.423 回答
4

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

于 2013-04-24T15:13:35.983 回答