【发布时间】:2012-12-13 01:07:07
【问题描述】:
我正在使用 Linq-to-Sql 来查询 SQL Server 数据库。此查询返回我的数据库中的实体列表。我的基础数据没有改变。
收到列表后,我会在其上调用 GetHashCode 以测试是否相等。奇怪的是,哈希值总是不同的。为什么总是不一样?
谢谢,
【问题讨论】:
-
请记住,即使您将
GetHashCode覆盖为基于内容,如答案所述,您仍然需要处理冲突,即具有不同值但可以解决的对象到相同的哈希码。您将无法(永远)使用该类型的数据进行无冲突哈希,您只能降低冲突率。您需要使用Equals来确保具有相同哈希的对象确实相同。