Мне нужно сравнить даты в двух отдельных списках.Каждый список состоит из объектов MyFile.Это класс, который я создал, чтобы иметь конкретную информацию о файле, такую как имя, dateModified, расширение и т. Д. Единственная проблема заключается в том, что многие объекты MyFiles в моем втором списке (полученные с внешнего жесткого диска) неиметь штамп dateTime (LastWriteTime) до миллисекунды.Я считаю, что это причина, почему мое сравнение не работает.Например, вот пример неудачного сравнения: «Почему c # считает, что даты не равны?»![Debug](https://i.stack.imgur.com/xEgqf.png)
a и b являются объектами MyFile, а класс MyFile содержит свойство ticks, которое равно file.LastWriteTime.Ticks. Они не используются в программе, которую я только что включил для отладки.Итак, после отладки несколько раз я понял, что последние 7 цифр представляют собой миллисекунды файла.В результате мое свойство ticks в MyFile теперь содержит 11 значащих цифр вместо 18 (примечание 18-11 = 7).Проблема заключается в том, что при сравнении тиков я получаю странные результаты, когда пытаюсь обновить свойство тиков путем деления на 10000000, а затем повторного умножения на 10000000. Так как мои свойства тиков длинны, то они потеряют последние 7 цифр, когдаделить.Я получаю меньше «ошибок».Но иногда я получаю что-то вроде этого: ![enter image description here](https://i.stack.imgur.com/lEFEA.png)
Здесь мы можем видеть, что даты совпадают, по крайней мере, до второго.Почему C # думает, что это не та же дата?Должен ли я создать свою собственную функцию «Ticks»?Я знаю, что преобразовываю dateTime в строку, затем сравниваю ее, но хочу иметь возможность узнать, является ли объект a.dateModified более новым, чем объект b.dateModified