gpt4 book ai didi

c# - LINQ。根据键连接的另一个字典中的相应值更新一个字典

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

我要字典

dic1<double, double>
dic2<double, double>

长度可能不匹配。所以我需要从 dic1.key == dic2.key 加入的 dic2 更新 dic1 中的值...但是保留 dic1 中的那些值,它在 dic2 中没有相应的键。

.NET 是 3.5

最佳答案

你可以遍历 dic2 中的值:

Dictionary<double, double> dic1;
Dictionary<double, double> dic2;
foreach (var pair in dic2)
{
dic1[pair.Key] = pair.Value;
}

或者,如果你想更新而不是插入,检查键是否存在:

foreach (var pair in dic2)
{
if (dic1.ContainsKey(pair.Key))
{
dic1[pair.Key] = pair.Value;
}
}

编辑:如果你真的想使用 Linq,你可能想要创建一个新字典而不是更新现有的字典:

dic1 =
(from pair in dic1
let Value = dic2.ContainsKey(pair.Key) ? dic2[pair.Key] : pair.Value
select new { pair.Key, Value }
).ToDictionary(pair => pair.Key, pair => pair.Value);

dic1 =
(from pair in dic1
join pair2 in dic2 on pair.Key equals pair2.Key into g
select new { pair.Key, g.DefaultIfEmpty(pair).First().Value }
).ToDictionary(pair => pair.Key, pair => pair.Value);

不过,在我看来,这只会让阅读变得更加困难。

关于c# - LINQ。根据键连接的另一个字典中的相应值更新一个字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3255276/

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