C# .Net哈希集唯一性计算是否完全基于哈希代码?

C# .Net哈希集唯一性计算是否完全基于哈希代码?,c#,.net,hashset,gethashcode,C#,.net,Hashset,Gethashcode,我想知道.NetHashSet是否完全基于哈希代码,或者它是否也使用相等 我有一个特定的类,我可能会实例化它的数百万个实例,并且有一个合理的机会,一些哈希代码会在这一点上发生冲突 我正在考虑使用HashSet来存储这个类的一些实例,我想知道它是否真的值得这么做——如果一个元素的唯一性只取决于它的hash代码,那么这对我来说对真正的应用程序没有用处 MSDN文档在这个主题上似乎相当模糊-任何启示都将受到赞赏不,它也使用了平等。根据定义,散列码不需要是唯一的——任何假定它们将被破坏的东西都是无效的哈

我想知道.Net
HashSet
是否完全基于哈希代码,或者它是否也使用相等

我有一个特定的类,我可能会实例化它的数百万个实例,并且有一个合理的机会,一些哈希代码会在这一点上发生冲突

我正在考虑使用HashSet来存储这个类的一些实例,我想知道它是否真的值得这么做——如果一个元素的唯一性只取决于它的hash代码,那么这对我来说对真正的应用程序没有用处


MSDN文档在这个主题上似乎相当模糊-任何启示都将受到赞赏

不,它也使用了平等。根据定义,散列码不需要是唯一的——任何假定它们将被破坏的东西都是无效的<代码>哈希集是合理的。它使用一个(默认为
EqualityComparer.Default
)来执行哈希代码生成和相等测试。

很好-这正是我希望它做的-MSDN在文档中没有明确说明这一点