如何为容差差异的DateTime比较器实现GetHashcode?

时间:2017-05-04 18:32:15

标签: c# gethashcode iequalitycomparer

我已经实现了IEqualityComparer<DateTime>,它可以根据容差值(以毫秒为单位)比较两个日期。如果两者之间的差异小于公差,则应将它们视为相等。

Equals方面实施起来几乎微不足道,但我真的不知道如何实现GetHashcode以配合平等比较。

问题也可以推广用于数字:给定两个double和一个delta值,可以实现类似的相等比较器,并且会出现类似的GetHashcode困难。

任何想法都会受到赞赏。

修改

我知道这样的相等比较器有点棘手,因为例如这样的相等运算符不是传递关系。尽管如此,我仍然喜欢听到一些可能的想法或替代方案。

0 个答案:

没有答案