我有Dictionary<Product, int> Inventory
,其中包含商店中产品的库存。
如何获取与Product
对应的值并为其添加1?
Product
也可能不在字典中。
答案 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)
,即0
。 0
正是您想要的值。
如果您希望在stock
返回TryGetValue
之后将false
值视为未分配(为了便于阅读),那么您仍然可以使用相同的通用方法:
int stock;
if (!inventory.TryGetValue(product, out stock))
stock = 0;
inventory[product] = stock + 1;