繁体   English   中英

在C#Set操作中处理数据

[英]Manipulating data in C# Set operations

我有两个字典在上面进行设置操作。 我将举例说明我在做什么以及我想要达到的目的:

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}添加到结果中怎么办?

我希望我对这个问题很清楚。

如果我正确理解了您的问题,那么您要在完成交集后向序列添加其他项目...然后,您需要的是Enumerable.Concat

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM