gpt4 book ai didi

c# - 用另一个键值列表减去一个键值列表

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

有没有一种方法可以通过 linq 做事而不必做嵌套的 for 循环和检查键(即下面)

假设:每个列表不包含重复日期

foreach(KeyValuePair value1 in List1)
{
foreach(KeyValuePair value2 in List2)
{
if(value1.Key == Value2.Key)
{
.........
}
else
{
......
}
}
}

我有两个列表

list 1

DateTime, Value
2017/01/01, 5
2017/01/02, 10
2017/01/05, 15

list 2

DateTime, Value
2017/01/01, 1
2017/01/03, 3
2017/01/04, 5

结果需要是(列表 1 - 列表 2)

DateTime, Value
2017/01/01, 4
2017/01/02, 10
2017/01/03, -3
2017/01/04, -5
2017/01/05, 15

最佳答案

如果您想从 list1 中减去 list2(即,将 list1negated list2 相加):

   var result = list1
.Concat(list2
.Select(pair => new KeyValuePair<DateTime, int>(pair.Key, -pair.Value)))
.GroupBy(pair => pair.Key,
pair => pair.Value)
.Select(chunk => new KeyValuePair<DateTime, int>(chunk.Key, chunk.Sum()))
.OrderBy(pair => pair.Key);

关于c# - 用另一个键值列表减去一个键值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47867283/

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