C#-无法找到包含比较检查的哈希集的已确认答案

本文关键字:哈希集 确认 答案 检查 比较 包含 C#- | 更新日期: 2023-09-27 17:58:58

我试图了解C#如何比较HashSet中的对象以获得相等性。

我在这里找不到任何东西:http://msdn.microsoft.com/en-us/library/bb359438.aspx

只有当我来到stackoverflow时,我读到它使用了Equals()和可能getHashCode()

无论如何,我都计划实现这两种方法,但我的问题是:

您将如何了解HashSet实际上是如何比较对象的?

C#-无法找到包含比较检查的哈希集的已确认答案

它使用Equals比较对象是否相等。它使用GetHashCode确定将它们放置在哪个存储桶中。

更一般地说,HashSet使用传递给其构造函数的IEqualityComparer<T>来同时执行这两个操作。如果未指定,则使用调用对象的GetHashCode()IEquatable<T>.Equals()方法的EqualityComparer<T>.Default(如果类型未实现IEquatable<T>,则使用object.Equals())。