Hi I have two dictionaries of next type:
SortedDictionary<string, ClusterPatternCommonMetadata> PatternMetaData { get; set; }
The ClusterPatternCommonMetadata object looks like:
int ChunkQuantity { get; set; }
SortedDictionary<int, int> ChunkOccurrences { get; set; }
First I need the way to find keys of PatternMetaData that is exists in two dictionaries. I find this way:
List<string> commonKeysString=
vector.PatternMetaData.Keys.Intersect(currentFindingVector.PatternMetaData.Keys)
Then I need to find common values of the founded keys...
Is there is the fast way (lambda, linq, etc) in order to do such operation
Thanks
Using Counter The Counter function from the Collections module can be directly applied to merge the two dictionaries which preserves the keys. And in turn adds the values at the matching keys.
The compare method cmp() is used in Python to compare values and keys of two dictionaries. If method returns 0 if both dictionaries are equal, 1 if dic1 > dict2 and -1 if dict1 < dict2.
This is called intersection.
You can get the keys using
var data = dictionary1.Keys.Intersect(dictionary2.Keys)
If you want to find equal keys and values that are contained within both dictionaries then just
var equalDictionarys = dictionary1.Intersect(dictionary2);
You can also get the whole Dictionary items which have common keys:
var commonDictionaryItems = Dic1.Where(d => Dic2.ContainsKey(d.Key)).ToList();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With