如何解决合并两个字典,但值加起来
我有两个字典,每个字典都有一个字符串作为键,一个int作为值,我想合并两个字典,但是如果有重复的键,这些值就加起来了,我想到了使用循环填充第三个字典但是有一种更简单的方法可以减少时间
预先感谢您:D
解决方法
您可以使用Linq:
using System;
using System.Collections.Generic;
using System.Linq;
class MainClass {
public static void Main(string[] args) {
IDictionary <string,int> dictA = new Dictionary <string,int>();
dictA.Add("Apple",2);
dictA.Add("Banana",1);
IDictionary <string,int> dictB = new Dictionary <string,int>();
dictB.Add("Apple",1);
dictB.Add("Cherry",5);
IDictionary <string,int> dictC = dictA.Concat(dictB)
.GroupBy(i => i.Key)
.ToDictionary(i => i.Key,i => i.Sum(j => j.Value));
foreach(KeyValuePair <string,int> kvp in dictC) {
Console.WriteLine("Key: {0},Value: {1}",kvp.Key,kvp.Value);
}
}
}
输出:
Key: Apple,Value: 3
Key: Banana,Value: 1
Key: Cherry,Value: 5
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。