C# 获取两个字典的公共键和公共值

C# 获取两个字典的公共键和公共值,c#,dictionary,lambda,linq-to-entities,C#,Dictionary,Lambda,Linq To Entities,嗨,我有两本下一种类型的字典: SortedDictionary<string, ClusterPatternCommonMetadata> PatternMetaData { get; set; } SortedDictionary模式元数据{get;set;} ClusterPatternCommonMetadata对象如下所示: int ChunkQuantity { get; set; } SortedDictionary<int, int> ChunkOc

嗨,我有两本下一种类型的字典:

SortedDictionary<string, ClusterPatternCommonMetadata> PatternMetaData { get; set; }
SortedDictionary模式元数据{get;set;}
ClusterPatternCommonMetadata对象如下所示:

int ChunkQuantity { get; set; }

SortedDictionary<int, int> ChunkOccurrences { get; set; }
int ChunkQuantity{get;set;}
SortedDictionary ChunkOccessions{get;set;}
首先,我需要找到存在于两个字典中的PatternMetaData键的方法。我这样想:

List<string> commonKeysString=
            vector.PatternMetaData.Keys.Intersect(currentFindingVector.PatternMetaData.Keys)
列出CommonKeyString=
vector.PatternMetaData.Keys.Intersect(currentFindingVector.PatternMetaData.Keys)
然后我需要找到这些键的共同值

是否有快速的方法(lambda、linq等)来进行此类操作


谢谢

这叫交叉路口

你可以使用

var data = dictionary1.Keys.Intersect(dictionary2.Keys)
如果您想找到两个字典中包含的相等键和值,那么只需

var equalDictionarys = dictionary1.Intersect(dictionary2);

您还可以获取具有公用键的整个字典项:

var commonDictionaryItems = Dic1.Where(d => Dic2.ContainsKey(d.Key)).ToList();

所以,没有办法通过两个给定字典中的键和值来获得相交字典?@AlexanderBerdichevsky只是想澄清一下。。你想得到所有键和值都匹配的字典吗?我想从两个字典中创建一个字典,其中包括键的公共键和公共值是的,这叫做相交:)试试我答案中的建议please@AlexanderBerdichevsky没有问题您是在寻找匹配的键还是匹配的键/值?相关问题: