如何更新在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; } }