C#-无法找到包含比较检查的哈希集的已确认答案
本文关键字:哈希集 确认 答案 检查 比较 包含 C#- | 更新日期: 2023-09-27 17:58:58
我试图了解C#如何比较HashSet中的对象以获得相等性。
我在这里找不到任何东西:http://msdn.microsoft.com/en-us/library/bb359438.aspx
只有当我来到stackoverflow时,我读到它使用了Equals()和可能getHashCode()
无论如何,我都计划实现这两种方法,但我的问题是:
您将如何了解HashSet实际上是如何比较对象的?
它使用Equals
比较对象是否相等。它使用GetHashCode
确定将它们放置在哪个存储桶中。
更一般地说,HashSet使用传递给其构造函数的IEqualityComparer<T>
来同时执行这两个操作。如果未指定,则使用调用对象的GetHashCode()
和IEquatable<T>.Equals()
方法的EqualityComparer<T>.Default
(如果类型未实现IEquatable<T>
,则使用object.Equals()
)。