我有两个字典列表,我正在进行设置操作。我将举例说明我在做什么以及我想要实现的目标:
var A = new List<Dictionary<string, int>>();
var B = new List<Dictionary<string, int>>();
A.Add(new Dictionary <string, int> { {"KeyA",1}, {"KeyB", 2} });
A.Add(new Dictionary <string, int> { {"KeyA",3}, {"KeyB", 5} });
B.Add(new Dictionary <string, int> { {"KeyA",6}, {"KeyB", 8}, {"KeyC", 11} });
B.Add(new Dictionary <string, int> { {"KeyA",3}, {"KeyB", 7}, {"KeyC", 15} });
var result = A.Intersect(B, new KeyComparer("KeyA"));
这给了我一个使用KeyA进行交集的A列表,我得到了一行{"KeyA",3}, {"KeyB", 5}
作为结果。如果我想在交叉发生时将B中的{KeyC, 15}
添加到结果中,该怎么办?
我希望我对这个问题很清楚。
答案 0 :(得分:0)
如果我正确理解了你的问题,那么你想在完成交集后添加一些其他项目......然后,你需要的是Enumerable.Concat
:
var result = A.Intersect(B, new KeyComparer("KeyA"))
.Concat(B.Last().Where(pair => pair.Key == "KeyC"));