Home
C#
Sort DateTime List
Updated Dec 2, 2023
Dot Net Perls
Sort List, DateTimes. In a C# program, a List of DateTimes can be sorted. We can base this on the year or the month—any valid ordering of the times is possible.
List
Sort List, Lambda
It is sometimes necessary to sort DateTimes from most recent to least recent, and the opposite. Sorting based on the month is also useful.
DateTime.Month
Example code. This program creates a List of 4 DateTime values. Next it calls the 4 Sort custom methods. After the sorting is done we print out the lists with Console.WriteLine.
Console.WriteLine
Detail The sorting methods call the List.Sort method. They provide a Comparison delegate as a lambda expression.
Tip The Comparison implementation returns the result of the CompareTo method on the 2 arguments.
Comparison
Result When we sort a collection of DateTimes, we get them in chronological order. This is due to the comparison functions on DateTime.
using System; using System.Collections.Generic; class Program { static void Main() { var list = new List<DateTime>(); list.Add(new DateTime(1980, 5, 5)); list.Add(new DateTime(1982, 10, 20)); list.Add(new DateTime(1984, 1, 4)); list.Add(new DateTime(1979, 6, 19)); Display(SortAscending(list), "SortAscending"); Display(SortDescending(list), "SortDescending"); Display(SortMonthAscending(list), "SortMonthAscending"); Display(SortMonthDescending(list), "SortMonthDescending"); } static List<DateTime> SortAscending(List<DateTime> list) { list.Sort((a, b) => a.CompareTo(b)); return list; } static List<DateTime> SortDescending(List<DateTime> list) { list.Sort((a, b) => b.CompareTo(a)); return list; } static List<DateTime> SortMonthAscending(List<DateTime> list) { list.Sort((a, b) => a.Month.CompareTo(b.Month)); return list; } static List<DateTime> SortMonthDescending(List<DateTime> list) { list.Sort((a, b) => b.Month.CompareTo(a.Month)); return list; } static void Display(List<DateTime> list, string message) { Console.WriteLine(message); foreach (var datetime in list) { Console.WriteLine(datetime); } Console.WriteLine(); } }
SortAscending 6/19/1979 12:00:00 AM 5/5/1980 12:00:00 AM 10/20/1982 12:00:00 AM 1/4/1984 12:00:00 AM SortDescending 1/4/1984 12:00:00 AM 10/20/1982 12:00:00 AM 5/5/1980 12:00:00 AM 6/19/1979 12:00:00 AM SortMonthAscending 1/4/1984 12:00:00 AM 5/5/1980 12:00:00 AM 6/19/1979 12:00:00 AM 10/20/1982 12:00:00 AM SortMonthDescending 10/20/1982 12:00:00 AM 6/19/1979 12:00:00 AM 5/5/1980 12:00:00 AM 1/4/1984 12:00:00 AM
The Ascending methods order the data from low to high, and the Descending methods do the opposite. Also, the SortMonth methods sort based on the month value of the DateTimes.
DateTime
We looked at a way you can sort a List of DateTime instances in your C# program. It is also possible to sort with a query expression. This syntax might be clearer for some programmers.
Dot Net Perls is a collection of pages with code examples, which are updated to stay current. Programming is an art, and it can be learned from examples.
Donate to this site to help offset the costs of running the server. Sites like this will cease to exist if there is no financial support for them.
Sam Allen is passionate about computer languages, and he maintains 100% of the material available on this website. He hopes it makes the world a nicer place.
This page was last updated on Dec 2, 2023 (edit).
Home
Changes
© 2007-2025 Sam Allen