如何更新在C#中存储在Dictionary中的值?

如何更新字典中的特定键的值Dictionary<string, int>

只需指向给定键的字典并指定一个新的值:

 myDictionary[myKey] = myNewValue; 

通过访问键作为索引是可能的

例如:

 Dictionary<string, int> dictionary = new Dictionary<string, int>(); dictionary["test"] = 1; dictionary["test"] += 1; Console.WriteLine (dictionary["test"]); // will print 2 

你可以按照这个方法:

 void addOrUpdate(Dictionary<int, int> dic, int key, int newValue) { int val; if (dic.TryGetValue(key, out val)) { // yay, value exists! dic[key] = val + newValue; } else { // darn, lets add the value dic.Add(key, newValue); } } 

你得到的边缘是你检查并获得相应的密钥的价值只有1访问字典。 如果使用ContainsKey检查存在并使用dic[key] = val + newValue;更新值dic[key] = val + newValue; 那么你正在访问字典两次。

使用LINQ:访问密钥字典并更改值

 Dictionary<string, int> dict = new Dictionary<string, int>(); dict = dict.ToDictionary(kvp => kvp.Key, kvp => kvp.Value + 1); 

这里有一个更新索引的方法,就像foo[x] = 9 ,其中x是一个键,9是值

  var views = new Dictionary<string, bool>(); foreach (var g in grantMasks) { string m = g.ToString(); for (int i = 0; i <= m.Length; i++) { views[views.ElementAt(i).Key] = m[i].Equals('1') ? true : false; } }