我试图了解 C# 如何比较 HashSet 中的对象是否相等。
我在这里找不到任何东西:http://msdn.microsoft.com/en-us/library/bb359438.aspx
只有当我来到 stackoverflow 时,我才读到它使用 Equals() 和可能 getHashCode()
无论如何我都计划实现这两种方法,但我的问题是:
要了解 HashSet 实际上如何比较对象,您会怎么做?
最佳答案
它使用 Equals
比较对象的相等性.它使用 GetHashCode
确定将它们放置在哪个桶中.
更一般地说,HashSet 使用 IEqualityComparer<T>
传递给它的构造函数来做这两件事。如果未指定,则使用 EqualityComparer<T>.Default
它调用对象的 GetHashCode()
和 IEquatable<T>.Equals()
方法(或 object.Equals()
如果类型未实现 IEquatable<T>
)。
关于C# - 无法找到哈希集的确认答案包含比较检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6295525/