我想用相同的键更新(前一个值+新值)字典的值,但它不起作用。在我的代码中它只是用新值替换。我怎么做的?请帮忙。
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);
}
}
我想如果下一次字典获得任何存在的密钥,那么它只是改变值(前一个值+新值),否则它会创建新的密钥和值。
答案 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);