gpt4 book ai didi

c# - 按键比较两个字典以获得匹配键的值

转载 作者:太空宇宙 更新时间:2023-11-03 21:21:06 25 4
gpt4 key购买 nike

我有两本字典A和B。

A - (a,b) (c,d) (e,f)
B - (a,p) (c,q) (g,h)

我希望能够制作一个新的字典 C,如下所示 -

C - (b,p) (d,q)

有什么办法可以做到这一点吗?

这是我目前拥有的:

var C= B.Where(d => A.ContainsKey(d.Key)).ToList();

最佳答案

使用 Linq 很简单 ;)

var query =
from x in dictionary1
join y in dictionary2 on x.Key equals y.Key
select new { Value1 = x.Value, Value2 = y.Value };

var newDict = query.ToDictionary(item => item.Value1, item => item.Value2);

然而,这并不是最有效的方法,因为它没有利用字典的快速查找功能。更快的方法是这样的:

var newDict = new Dictionary<string, string>(); // adjust the key and value types as needed
foreach (var kvp in dictionary1)
{
string value2;
if (dictionary2.TryGetValue(kvp.Key, out value2))
{
newDict.Add(kvp.Value, value2);
}
}

关于c# - 按键比较两个字典以获得匹配键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30655102/

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