在C#Set操作中操作数据

在C#Set操作中操作数据,c#,set,C#,Set,我有两个字典列表,我在上面做集合运算。我将举例说明我正在做什么以及我试图实现什么: 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 &

我有两个字典列表,我在上面做集合运算。我将举例说明我正在做什么以及我试图实现什么:

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"));
var A=新列表();
var B=新列表();
A.Add(新词典{{“KeyA”,1},{“KeyB”,2});
A.Add(新字典{{“KeyA”,3},{“KeyB”,5});
B.增加(新字典{{“KeyA”,6},{“KeyB”,8},{“KeyC”,11});
B.添加(新词典{{“KeyA”,3},{“KeyB”,7},{“KeyC”,15});
var结果=A.Intersect(B,新的KeyComparer(“KeyA”);
这给了我一个使用KeyA进行交叉的列表,我得到了一行,
{“KeyA”,3},{“KeyB”,5}
。如果我想在交叉点发生时将B中的
{KeyC,15}
添加到结果中,该怎么办


我希望我能清楚地回答这个问题。

如果我正确理解了您的问题,您希望在完成交叉后在序列中添加其他项目。。。然后,您需要的是
可枚举。Concat

var result = A.Intersect(B, new KeyComparer("KeyA"))
               .Concat(B.Last().Where(pair => pair.Key == "KeyC"));