标签: c# equals iequalitycomparer iequatable
似乎有很多等式接口:IEquatable,IEquatable<T>,IEqualityComparer,IEqualityComparer<T>。我应该实现哪一个能够检测两个对象是否具有相同的值(而我的对象决定了相同的值意味着什么)。
IEquatable
IEquatable<T>
IEqualityComparer
IEqualityComparer<T>
我希望这不仅可以用于已知相同类型的两个对象,而且还可以用于两个对象,其中一个是我已知的类型,甚至对于两个对象的集合,即使它们来源不明,例如IList和IEnumerable(非通用类型,因此没有<T>)
IList
IEnumerable
<T>
这样做的正确方法是什么?