Как реализовать GetHashcode для компаратора DateTime, допускающего разницу?

Я реализовал IEqualityComparer<DateTime>, который может сравнивать две даты на основе значения допуска в миллисекундах. Если разница между ними меньше допуска, их следует рассматривать как равные.

Сторону Equals почти тривиально реализовать, однако я действительно понятия не имею, как реализовать GetHashcode для взаимодействия со сравнением на равенство.

Проблема cможет быть обобщена и для чисел: при наличии двух double и дельта-значения может быть реализован аналогичный компаратор на равенство, и возникнут аналогичные GetHashcode трудности.

Любая идея будет оценена.

РЕДАКТИРОВАТЬ

Я знаю, что такой компаратор равенства довольно сложен, потому что такой оператор равенства, например, не будет транзитивным отношением. Тем не менее, я хотел бы услышать некоторые возможные идеи или альтернативы.


person Zoltán Tamási    schedule 04.05.2017    source источник
comment
return 0; выполняет свою работу. Только не создавайте большой Dictionary или HashSet с этим классом в качестве ключа, производительность может немного разочаровать.   -  person Hans Passant    schedule 05.05.2017
comment
Спасибо за совет. Это моя текущая реализация, и она действительно работает. Я просто искал более правильный способ,.   -  person Zoltán Tamási    schedule 05.05.2017