private Comparison GetDictionaryValues <TKey>(SetComparer <TKey> .Comparison keysComparison, IDictionary <TKey, TValue> left, IDictionary <TKey, TValue> right) { return(new Comparison(keysComparison.Matches.Select(k => left[k]).ToList(), keysComparison.OnlyOnLeft.Select(k => left[k]).ToList(), keysComparison.OnlyOnRight.Select(k => right[k]).ToList())); }
public Comparison Compare <TKey>(IDictionary <TKey, TValue> left, IDictionary <TKey, TValue> right, IEqualityComparer <TKey> comparer = null) { var keysComparison = new SetComparer <TKey>().Compare(left.Keys, right.Keys); return(GetDictionaryValues(keysComparison, left, right)); }