0

可以说我有,

Dictionary<string, int> dict = new Dictionary<string, int>();

并且已经有一些项目:

"一", 1

“乙”,15

"C", 9

……

现在,当我添加新的时,我正在检查密钥是否已经存在:

for(int i = 0; i<n; i++)
    { 
        if (dict.ContainsKey(newKey[i] == true)
        { 
            //I should add newValue to existing value(sum all of them) of existing key pair
        }
        else
        {
            dict.Add(newKey[i],newValue[i]);
        }
    }

我应该如何总结现有密钥的所有值,为现有密钥对的现有值添加新值?

4

1 回答 1

3

最简单的方法是:

for(int i = 0; i < n; i++)
{
    int currentValue;
    // Deliberately ignore the return value
    dict.TryGetValue(newKey[i], out currentValue);
    dict[newKey[i]] = currentValue + newValue[i];
}

这会为每个键执行一次“获取”,然后执行一次“放置”。它使用的默认值为 0 的事实int- 当TryGetValue返回 false 时,currentValue将设置为 0,这适用于新条目。

于 2012-10-03T07:48:01.133 回答