8

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

SortedDictionary<string, ClusterPatternCommonMetadata> PatternMetaData { get; set; }

ClusterPatternCommonMetadata 对象如下所示:

int ChunkQuantity { get; set; }

SortedDictionary<int, int> ChunkOccurrences { get; set; }

首先,我需要找到存在于两个字典中的 PatternMetaData 键的方法。我发现这种方式:

List<string> commonKeysString=
            vector.PatternMetaData.Keys.Intersect(currentFindingVector.PatternMetaData.Keys)

然后我需要找到建立键的共同值......

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

谢谢

4

2 回答 2

15

这称为交集。

您可以使用获取密钥

var data = dictionary1.Keys.Intersect(dictionary2.Keys)

如果您想找到两个字典中包含的相同键和值,那么只需

var equalDictionarys = dictionary1.Intersect(dictionary2);
于 2012-05-14T15:54:02.370 回答
5

您还可以获得具有公共键的整个字典项目:

var commonDictionaryItems = Dic1.Where(d => Dic2.ContainsKey(d.Key)).ToList();
于 2012-06-19T15:14:35.443 回答