没看懂你在说什么。
1、IEqualityComparer<T>有默认实现:
EqualityComparer(T).Default 属性 (System.Collections.Generic)2、Dictionary<>对象可以直接获取当前的IEqualityComparer<T>:
Dictionary(TKey, TValue).Comparer 属性 (System.Collections.Generic)3、如果你的问题是,Dictionary<>对象为什么不默认实现IEqualityComparer<T>,那么答案是做不到。因为两个Dictionary<>对象所适用的用于标识Key的唯一性的IEqualityComparer<T>可能是不一样的。也就是同样两个Dictionary<string, object>,如果他们的Comparer属性不一样,那么理论上这两个字典是不可比较的。
4、如果你只是要比较两个Dictionary的所有KeyValuePair集合是不是相等,直接new HashSet<KeyValuePair<K,V>>( dictionary )来比较就可以了。