10得票2回答
如何为复杂相等性实现Object.GetHashCode()方法?

基本上,到目前为止我有以下内容:class Foo { public override bool Equals(object obj) { Foo d = obj as Foo ; if (d == null) retur...

7得票2回答
在Swift中符合Comparable协议的通用类

我尝试创建一个简单的通用节点类,符合Comparable协议,以便可以轻松地比较节点而无需访问其键。然而,当我尝试编写<和==函数时,编译器似乎不喜欢它。<和==函数在定义节点参数时需要一个类型。在Java中,这很简单,因为您在类内部定义了相等和<。Swift要求全局定义。有...

15得票4回答
我应该使用字符串字段的连接作为哈希码吗?

我在C#中有一个地址类,看起来像这样:public class Address { public string StreetAddress { get; set; } public string RuralRoute { get; set; } ...

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

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

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

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

8得票3回答
如果我实现了IEquatable <T>,那么重写Equals方法很重要吗?

我知道在实现自定义相等性检查时覆盖 GetHashCode 的重要性 - 我已经实现了 IEquality&lt;T&gt; 接口,并且我知道泛型和非泛型的 Equals 之间的区别 如此讨论. 现在,是否有必要重写 Equals(object t)?一切不都可以包含在泛型 Equals(T ...

8得票1回答
用于字典键的IEquatable的类实现

我有一个类,包含两个字符串和一个枚举。我想将这个类的实例用作字典中的键。不幸的是,我似乎没有正确实现IEquatable接口。以下是我的实现方式: public enum CoinSide { Heads, Tails } public class CoinDetails ...

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

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

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

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

9得票5回答
如何重写 List<T> 的 Contains 方法

我想比较List[MyObject]中的属性而不是整个对象。因此我使用IEquatable[MyObject],但编译器仍然要求使用MyObject而不是字符串属性。为什么? 以下是您提供的内容: public class AnyClass { public List&lt;Any...