在这个答案之后:
我意识到 GetHashCode 的目的不是为对象提供唯一标识符。
这个测试的目的是我有一个带有 6 个参数的业务功能:
customerId
serviceId
startDate
EndDate
cmsThematicId
而且我不想用相同的值多次调用这个函数
这些参数被插入到数据库中,我可以使用 (customerId = @customerId
和serviceId = @serviceId
...) 进行查询,但是我需要通过很多组合来提高效率,所以这不是一个解决方案。
编辑 :
例子 :
假设我有一个超级用户,他需要注册客户。注册由 5 个参数组成:customerId、serviceId、startDate、EndDate、cmsThematicId。注册过程是这样的:
- 您选择服务(例如“用大红色按钮显示嗨”)
- 您选择客户(购买服务的人)
- 您选择 cmsThematicId (如果需要,可以选择网页)
- 您选择开始日期(在下拉列表中)
- 您选择 endDate(在下拉列表中)
我的表单无法显示一组已使用的参数。
例如,一旦客户 1 在 1 月份的“纽约假期”页面上注册了“大红色按钮”服务,超级用户将不会在表单中看到这些参数集。
所以我的过程是这样的: - 创建所有可能性 - 计算列表中每个可能性的哈希码 - 获取每个已经使用的可能性的哈希码(从数据库中) - 从列表中删除已经使用的可能性 - 显示表格
问题是:哈希码不是唯一的,所以即使没有使用,我也可能会删除一个项目。
更清楚了吗?