2013-05-04 2 views
0

Я говорю с точки зрения .NET, но это может распространяться на другие языки или фреймворки, которые используют аналогичную логику.Сортировать по Integer по DateTime

Правильно ли предположить, что при сортировке объектов по свойству DateTime значение DateTime преобразуется в Ticks (например, длинные целые числа) для целей сравнения? И в результате скорость сортировки на DateTime не много, если она есть, медленнее, чем сортировка по целым числам?

ответ

2

Да, он сравнивает тики. Вот фактическая реализация:

public int CompareTo(DateTime value) { 
    long valueTicks = value.InternalTicks; 
    long ticks = InternalTicks; 
    if (ticks > valueTicks) return 1; 
    if (ticks < valueTicks) return -1; 
    return 0; 
} 
+0

Спасибо. Поэтому сортировка по целому числу не имеет преимуществ. –

+0

Это правильно. –

-1

Вы можете использовать TicksPer constants

Here ссылка

Module Module1 
    Sub Main() 
    ' Display these constants. 
    Console.WriteLine(TimeSpan.TicksPerDay) 
     Console.WriteLine(TimeSpan.TicksPerHour) 
    Console.WriteLine(TimeSpan.TicksPerMinute) 
    Console.WriteLine(TimeSpan.TicksPerSecond) 
    Console.WriteLine(TimeSpan.TicksPerMillisecond) 
    End Sub 
End Module 

Выход

864000000000 
36000000000 
600000000 
10000000 
10000