在Dictionary中添加值

时间:2015-06-14 16:46:22

标签: c# dictionary

我有Dictionary<Product, int> Inventory,其中包含商店中产品的库存。

如何获取与Product对应的值并为其添加1?

Product也可能不在字典中。

2 个答案:

答案 0 :(得分:3)

这样的东西?

myDictionary[myProduct] += stockIncrease;

它与您用来更新数组中的项目的语法完全相同。

如果它有所帮助,那么就“我想要股票上涨”而言,更少考虑“我如何获得我需要的价值,以及我可以用这个价值做些什么”。

如果无法保证您的产品是否存在于字典中,那么只需添加一个if-check:

if (!inventory.ContainsKey(myProduct)) {
    inventory[myProduct] = 0;
}
inventory[myProduct] += stockIncrease;

答案 1 :(得分:2)

要处理字典中尚不存在的内容,我个人首选的方法是使用TryGetValue

int stock;
inventory.TryGetValue(product, out stock);
inventory[product] = stock + 1;

这是有效的,因为如果产品尚不存在,TryGetValue会将stock设置为default(int),即00正是您想要的值。

如果您希望在stock返回TryGetValue之后将false值视为未分配(为了便于阅读),那么您仍然可以使用相同的通用方法:

int stock;
if (!inventory.TryGetValue(product, out stock))
  stock = 0;
inventory[product] = stock + 1;