Я реализовал IEqualityComparer<DateTime>
, который может сравнивать две даты на основе значения допуска в миллисекундах. Если разница между ними меньше допуска, их следует рассматривать как равные.
Сторону Equals
почти тривиально реализовать, однако я действительно понятия не имею, как реализовать GetHashcode
для взаимодействия со сравнением на равенство.
Проблема cможет быть обобщена и для чисел: при наличии двух double
и дельта-значения может быть реализован аналогичный компаратор на равенство, и возникнут аналогичные GetHashcode
трудности.
Любая идея будет оценена.
РЕДАКТИРОВАТЬ
Я знаю, что такой компаратор равенства довольно сложен, потому что такой оператор равенства, например, не будет транзитивным отношением. Тем не менее, я хотел бы услышать некоторые возможные идеи или альтернативы.
return 0;
выполняет свою работу. Только не создавайте большой Dictionary или HashSet с этим классом в качестве ключа, производительность может немного разочаровать. - person Hans Passant   schedule 05.05.2017