230得票4回答
IEquatable和仅重写Object.Equals()有什么区别?

我希望我的Food类能够测试它是否等于另一个Food实例。我稍后将在列表中使用它,并且我想使用它的List.Contains()方法。我应该实现IEquatable<Food>还是只重写Object.Equals()?根据MSDN所述: 此方法通过使用对象的IEquatable...

183得票5回答
IEqualityComparer<T>和IEquatable<T>有什么区别?

我想了解何时应该使用IEqualityComparer&lt;T&gt;和IEquatable&lt;T&gt;。两者的MSDN文档看起来非常相似。

152得票11回答
在LINQ to Objects中,Distinct不起作用。

class Program { static void Main(string[] args) { List&lt;Book&gt; books = new List&lt;Book&gt; { new Book ...

115得票5回答
IComparable和IEquatable接口有什么区别?

这两个接口似乎都用于比较对象的相等性,那么它们之间的主要区别是什么?

58得票4回答
何时使用IEquatable<T>以及原因

IEquatable&lt;T&gt; 究竟为您带来了什么?我唯一能想到的有用之处是在创建泛型类型并强制用户实现和编写一个良好的等于方法时。 我错过了什么吗?

55得票5回答
有完整的IEquatable实现参考吗?

我在 Stack Overflow 上提问的很多问题都涉及到 IEquatable 的实现。我发现正确实现它非常困难,因为天真的实现中隐藏着许多错误,而我找到的文章都相当不完整。我想要找到或编写一个权威参考,其中必须包括: 如何正确地实现 IEquatable 如何正确覆盖 Equals ...

53得票2回答
理解IEquatable

当我使用实现IEquatable&lt;T&gt;接口的对象进行比较时: 如果我已经实现了Equals(T),为什么还需要重写Equals(object)方法? 一旦我实现了IEquatable&lt;T&gt;,我能否使用==和!=运算符?

38得票4回答
非密封类是否应该实现IEquatable<T>和IComparable<T>接口?

有没有人对于IEquatable&lt;T&gt;或者IComparable&lt;T&gt;是否应该要求T是sealed(如果它是一个class)有任何意见? 我之所以会想到这个问题,是因为我正在编写一组基类,旨在帮助实现不可变类的实现。其中一部分功能是自动实现相等比较(使用类的字段以及可...

27得票3回答
当对象的标识符为null时,GetHashCode应该返回什么?

考虑到身份属性可能为null,以下哪个正确/更好?public override int GetHashCode() { if (ID == null) { return base.GetHashCode(); } return ID.GetHashCo...

22得票2回答
在空字段上调用GetHashCode方法?

如何在 GetHashCode 函数中处理 null 字段?Module Module1 Sub Main() Dim c As New Contact Dim hash = c.GetHashCode End Sub Public Class Contact :...