在这种情况下,不确定字典的最佳替代方法 - 对象或数组。 我需要更改字典(或其他任何内容)的值,具体取决于id / key是否存在,如果解析的id确实存在,则添加到现有值,而不是key / id - 什么是最佳替代?< / p>
代码
Dictionary<int, int> total = new Dictionary<int, int>();
// elsewhere in a function...
ArrayManager(total, id, value);
public void ArrayManager(Dictionary<int,int> items, int id, int val)
{
int i = 0;
bool found = false;
foreach(var item in items)
{
if(item.Key == id)
{
item.Value += val; // immutable issue stops this from working
found = true;
break;
}
}
if(found == false)
{ // do something }
}
答案 0 :(得分:4)
如果您尝试增加给定键标识的值:
public void ArrayManager(Dictionary<int,int> items, int id, int val)
{
int currentVal = 0;
if (items.TryGetValue(id, out currentVal))
{
int newVal = currentVal + val;
items[id] = newVal;
// Do something else
}
答案 1 :(得分:2)
我相信你要做的是:
if(item.Key == id)
{
items[item.Key]+= val;
}