Вы опустили определение w, x, y, z. Я определил их так:
DateTime w = new DateTime(2012, 3, 1, 10, 56, 0);
DateTime x = new DateTime(2012, 3, 1, 17, 3, 0);
DateTime y = new DateTime(2012, 3, 1, 1, 38, 0);
DateTime z = new DateTime(2012, 2, 29, 17, 3, 0);
Это заставляет их соответствовать вашим значениям для a1-a4; однако, когда я запускаю остальную часть вашего кода, они сортируются правильно (a3, a4, a1, a2).
Однако я заметил, что x и z были одинаковыми часами / минутами, поэтому мой первоначальный тест имел следующее значение:
DateTime z = new DateTime(2012, 3, 1, 17, 3, 0);
Когда я запустил это, я заставил их выйти в том порядке, в котором вы показывали (a3, a1, a2, a4); однако после вызова AddHours()
значение z
было фактически 3/2/2012 , поэтому оно было последним.