fork download
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4.  
  5. public class Test
  6. {
  7. public static void Main()
  8. {
  9. List<string> dates = new List<string>();
  10.  
  11. for (int i = 1; i <= 10; i++)
  12. {
  13. dates.Add(new DateTime(2000 + i%3, i % 3 + 1, i % 10 + 1).ToString());
  14. }
  15.  
  16. dates.Add(new DateTime(2000,2,13).ToString());
  17. dates.Add(new DateTime(2001,3,4).ToString());
  18.  
  19. var q1 = dates.OrderBy(d=>DateTime.Parse(d));
  20. var q1WithDate = dates.OrderBy(d => DateTime.Parse(d).Date);
  21. var q1ThenThen = dates.OrderBy(d => DateTime.Parse(d).Year).
  22. ThenBy(d => DateTime.Parse(d).Month).
  23. ThenBy(d => DateTime.Parse(d).Day);
  24.  
  25. Console.WriteLine(q1.SequenceEqual(q1WithDate));
  26. Console.WriteLine(q1.SequenceEqual(q1ThenThen));
  27.  
  28. foreach(var item in q1)
  29. Console.WriteLine(item);
  30.  
  31. var q2 = dates.OrderByDescending(d => DateTime.Parse(d));
  32. var q2WithDate = dates.OrderByDescending(d => DateTime.Parse(d).Date);
  33.  
  34. Console.WriteLine(q2.SequenceEqual(q2WithDate));
  35.  
  36. foreach(var item in q2)
  37. Console.WriteLine(item);
  38. }
  39. }
Success #stdin #stdout 0.13s 24480KB
stdin
Standard input is empty
stdout
True
True
1/4/2000 12:00:00 AM
1/7/2000 12:00:00 AM
1/10/2000 12:00:00 AM
2/13/2000 12:00:00 AM
2/1/2001 12:00:00 AM
2/2/2001 12:00:00 AM
2/5/2001 12:00:00 AM
2/8/2001 12:00:00 AM
3/4/2001 12:00:00 AM
3/3/2002 12:00:00 AM
3/6/2002 12:00:00 AM
3/9/2002 12:00:00 AM
True
3/9/2002 12:00:00 AM
3/6/2002 12:00:00 AM
3/3/2002 12:00:00 AM
3/4/2001 12:00:00 AM
2/8/2001 12:00:00 AM
2/5/2001 12:00:00 AM
2/2/2001 12:00:00 AM
2/1/2001 12:00:00 AM
2/13/2000 12:00:00 AM
1/10/2000 12:00:00 AM
1/7/2000 12:00:00 AM
1/4/2000 12:00:00 AM