gpt4 book ai didi

c# - 连接两个具有相同键记录的字典

转载 作者:行者123 更新时间:2023-11-30 20:00:23 25 4
gpt4 key购买 nike

我想合并两个词典。当我尝试这个时,我收到关于重复键的错误。如何合并两个具有相同键的字典?

class Program
{
static void Main(string[] args)
{
Dictionary<Class1.Deneme, List<string>> dict1 = new Dictionary<Class1.Deneme, List<string>>();
Dictionary<Class1.Deneme, List<string>> dict2 = new Dictionary<Class1.Deneme, List<string>>();
Dictionary<Class1.Deneme, List<string>> dict3 = new Dictionary<Class1.Deneme, List<string>>();

List<string> list1 = new List<string>() { "a", "b" };
List<string> list2 = new List<string>() { "c", "d" };
List<string> list3 = new List<string>() { "e", "f" };
List<string> list4 = new List<string>() { "g", "h" };

dict1.Add(Class1.Deneme.Buyer, list1);
dict2.Add(Class1.Deneme.Buyer, list2);
dict3 = dict1.Concat(dict2).ToDictionary(kvp => kvp.Key, kvp => kvp.Value);

Console.Read();
}
}

public class Class1
{
public enum Deneme
{
Customer=1,
Buyer=2,
Supplier=3
}
}

最佳答案

按键对所有 KeyValuePairs 进行分组。然后通过选择组键作为键并将扁平值作为值将这些组转换为字典(如果您不想要重复的字符串,也可以在 ToList() 之前应用 Distinct() ):

dict1.Concat(dict2)
.GroupBy(kvp => kvp.Key) // thus no duplicated keys will be added
.ToDictionary(g => g.Key, g => g.SelectMany(kvp => kvp.Value).ToList());

关于c# - 连接两个具有相同键记录的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21157122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com