如何在.net中使用相同的键更新字典的值(以前的值+新值)?

时间:2016-06-13 06:08:38

标签: c# .net winforms dictionary

我想用相同的键更新(前一个值+新值)字典的值,但它不起作用。在我的代码中它只是用新值替换。我怎么做的?请帮忙。

if (itemIdTextBox.Text != String.Empty || quantityTextBox.Text != String.Empty)
{
   string ProductId = itemIdTextBox.Text;
   int ProductQuantity = Convert.ToInt32(quantityTextBox.Text);
   if (aShop.aProducts.ContainsKey(ProductId))
   {
       aShop.aProducts[ProductId] = ProductQuantity;
   }
   else
   {
        aShop.aProducts.Add(ProductId,ProductQuantity);
   }
}

我想如果下一次字典获得任何存在的密钥,那么它只是改变值(前一个值+新值),否则它会创建新的密钥和值。

2 个答案:

答案 0 :(得分:2)

aProducts成为KeyValuePair,然后aProducts[SomeKey]指向该值(让我们假设这是以前的值)然后您可以执行+=操作来更新值(现有值+当前值=更新值)请参阅以下代码:

aShop.aProducts[ProductId] += ProductQuantity;

答案 1 :(得分:0)

如果你想对Dictionary的所有元素做同样的事情,你可以这样做:

aShop.aProducts = aShop.aProducts.ToDictionary(x => x.Key, x => x.Value + ProductQuantity);