Tag: iequatable

有没有完整的IEquatable实现参考?

我在这里的许多问题都涉及到IEquatable的实现。 我发现正确实施是非常困难的,因为在天真的实现中存在很多隐藏的错误,而我发现的文章相当不完整。 我想find或写一个明确的参考,其中必须包括: 如何正确实现IEquatable 如何正确覆盖Equals 如何正确覆盖GetHashCode 如何正确实现ToString方法 如何正确实现运算符== 如何正确执行操作符! 这样一个完整的参考已经存在? PS:即使MSDN的参考似乎有缺陷给我

了解IEquatable

如果我想比较对象,他们实现了IEquatable <>接口,我有几个问题: 为什么我必须重写Equals(object),如果我必须实现Equals <> 我可以使用==和!=一旦我实现IEquatable?

IComparable和IEquatable接口有什么区别?

这两个接口似乎比较对象的平等,所以他们之间的主要区别是什么?

IEqualityComparer <T>和IEquatable <T>有什么区别?

我想了解应该使用IEqualityComparer<T>和IEquatable<T>的场景。 两个MSDN文档看起来非常相似。

IEquatable和刚刚重写Object.Equals()之间有什么区别?

我希望我的Food类能够testing什么时候它等于Food另一个实例。 我将在后面的列表中使用它,并且我想使用它的List.Contains()方法。 我应该实现IEquatable<Food>还是重写Object.Equals() ? 来自MSDN: 此方法通过使用默认的相等比较器来确定相等性,如T(对象列表中值的types)的对象实现的IEquatable.Equals方法所定义的。 所以我的下一个问题是:.NET框架的哪些函数/类使用Object.Equals() ? 我应该首先使用它吗?

独特的不使用LINQ到对象

class Program { static void Main(string[] args) { List<Book> books = new List<Book> { new Book { Name="C# in Depth", Authors = new List<Author> { new Author { FirstName = "Jon", LastName="Skeet" }, new Author { FirstName = "Jon", LastName="Skeet" }, } }, new Book { Name="LINQ in Action", Authors = new List<Author> { new […]