【发布时间】:2021-06-12 13:50:20
【问题描述】:
我想找到两个字典的并集,它们可能包含相同的键,但值不同。 如果两个字典中都存在键,那么我想将值(如果它们不同)合并到列表中。 如果键只存在于一个字典中,那么我想创建一个列表并将该项目添加到其中。
所以,例如:
var dict1 = new Dictionary<int, string>();
var dict2 = new Dictionary<int, string>();
dict1.Add(1, "a");
dict2.Add(1, "b");
dict1.Add(2, "c");
var resultDict = Combine(dict1, dict2);
结果字典将是 Dictionary
我能想到的最简单的解决方案是遍历键并添加空列表,然后遍历两个字典并将所有值添加到给定键的列表中。
有没有什么好的、实用的解决方案可以将这两个字典结合起来?
【问题讨论】:
-
你检查过这个吗? Similar topic
-
@startresse: 相关但不重复,因为这些问题想要创建一个合并的
Dictionary<TKey, TValue>而这个问题想要一个Dictionary<TKey, List<TValue>>并且没有答案显示它。
标签: c# dictionary enumerable