public new bool Equals(object x, object y) { IComparerWrapper[] comparers = _comparers; for (int i = 0; i < comparers.Length; i++) { IComparerWrapper equalityComparer = comparers[i]; if (equalityComparer.IsCompatible(x) && equalityComparer.IsCompatible(y)) { return(equalityComparer.Equals(x, y)); } } return(ReferenceEqualityComparer.Instance.Equals(x, y)); }
public int GetHashCode(object obj) { IComparerWrapper[] comparers = _comparers; for (int i = 0; i < comparers.Length; i++) { IComparerWrapper equalityComparer = comparers[i]; if (equalityComparer.IsCompatible(obj)) { return(equalityComparer.GetHashCode(obj)); } } return(ReferenceEqualityComparer.Instance.GetHashCode(obj)); }