gpt4 book ai didi

c# - 在键级别合并字典,然后在值级别合并字典

转载 作者:行者123 更新时间:2023-11-30 15:10:04 26 4
gpt4 key购买 nike

我有两本字典

Dictionary<String, String> one = new Dictionary<string, string>
{
{ "A", "1" },
{ "B", "2" },
{ "C", "3" },
{ "D", "4" },
{ "E", "5" },
{ "F", "6" },
{ "G", "7" },
{ "H", "8" }
};

Dictionary<String, String> two = new Dictionary<string, string>
{
{ "A", "1" },
{ "B", "2" },
{ "C", "3" },
{ "E", "4" },
{ "F", "4" },
{ "I", "6" },
{ "J", "10" },
{ "K", "11" }
};

我需要在键级别和值级别合并两个字典,并将生成的字典添加到新字典 three 中,生成的字典不应具有相同的键或相同的值,并且在这种情况下生成的字典就像

Dictionary<String, String> three = new Dictionary<string, string>
{
{ "A", "1" },
{ "B", "2" },
{ "C", "3" },
{ "D", "4" },
{ "E", "5" },
{ "F", "6" },
{ "G", "7" },
{ "H", "8" },
{ "J", "10" },
{ "K", "11" }
};

现在我正在使用like

  1. 合并两个字典中的所有键
  2. 使用新键创建新字典
  3. 删除重复值(相同值)

编辑:如果两个字典都具有相同的键值对,那么我需要存储第一个字典中的键值对。

有什么方法可以使用 LINQ 做到这一点吗?提前致谢

最佳答案

一个选项,使用字典是一系列键/值对的事实:

var dictionary = dictionary1.Concat(dictionary2)
.ToLookup(pair => pair.Key, pair => pair.Value)
.ToDictionary(x => x.Key, x => x.First());

诚然,这不是非常有效(因为它实际上构建了一个哈希表两次),但我相信它会起作用。

关于c# - 在键级别合并字典,然后在值级别合并字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3634335/

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