c# - How to sort a Dictionary by DateTime value

Dictionary sort by datetime
dictionary-sort-by-datetime.aspx

<%@ Page Language="C#" AutoEventWireup="true"%>
  
<!DOCTYPE html>    
<script runat="server">  
    protected void Button1_Click(object sender, System.EventArgs e)
    {
        //initialize a dictionary with date time values.
        Dictionary<int, DateTime> dc = new Dictionary<int, DateTime>() {
            {1,DateTime.Today},
            {2,DateTime.Today.AddDays(3)},
            {3,DateTime.Today.AddDays(1)},
            {4,DateTime.Today.AddDays(10)},
            {5,DateTime.Today.AddDays(5)},
        };

        Label1.Text = "dictionary keys and values..........";
        foreach (KeyValuePair<int, DateTime> pair in dc)
        {
            Label1.Text += "<br />" + pair.Key + " ........ " + pair.Value.ToShortDateString();
        }

        //ascending sorted dictionary by date time value.
        dc = dc.OrderBy(x => x.Value).ToDictionary(x => x.Key, x => x.Value);

        Label1.Text += "<br /><br />ascending sorted dictionary by date time value..........";
        foreach (KeyValuePair<int, DateTime> pair in dc)
        {
            Label1.Text += "<br />" + pair.Key + " ........ " + pair.Value.ToShortDateString();
        }

        //descending sorted dictionary by date time values.
        dc = dc.OrderByDescending(x => x.Value).ToDictionary(x => x.Key, x => x.Value);

        Label1.Text += "<br /><br />descending sorted dictionary by date time values..........";
        foreach (KeyValuePair<int, DateTime> pair in dc)
        {
            Label1.Text += "<br />" + pair.Key + " ........ " + pair.Value.ToShortDateString();
        }
    }    
</script>    
    
<html xmlns="http://www.w3.org/1999/xhtml">    
<head id="Head1" runat="server">    
    <title>c# example - dictionary sort by datetime</title>    
</head>    
<body>    
    <form id="form1" runat="server">    
    <div>    
        <h2 style="color:MidnightBlue; font-style:italic;">    
            c# example - dictionary sort by datetime
        </h2>    
        <hr width="550" align="left" color="Gainsboro" />    
        <asp:Label     
            ID="Label1"     
            runat="server"    
            Font-Size="Large"  
            >    
        </asp:Label>    
        <br /><br />  
        <asp:Button     
            ID="Button1"     
            runat="server"     
            Text="dictionary sort by datetime"    
            OnClick="Button1_Click"  
            Height="40"    
            Font-Bold="true"    
            />    
    </div>    
    </form>    
</body>    
</html>
More c# examples