我已经实现了IEqualityComparer<DateTime>
,它可以根据容差值(以毫秒为单位)比较两个日期。如果两者之间的差异小于公差,则应将它们视为相等。
Equals
方面实施起来几乎微不足道,但我真的不知道如何实现GetHashcode
以配合平等比较。
问题也可以推广用于数字:给定两个double
和一个delta值,可以实现类似的相等比较器,并且会出现类似的GetHashcode
困难。
任何想法都会受到赞赏。
修改
我知道这样的相等比较器有点棘手,因为例如这样的相等运算符不是传递关系。尽管如此,我仍然喜欢听到一些可能的想法或替代方案。