title: LINQ orderby on date field in descending order
body: <p>How can I change the LINQ query in the code below to sort by date in descending order (latest first, earliest last)?</p>
  
  <pre><code>using System;
  using System.Linq;
  using System.Collections.Generic;
  
  
  namespace Helloworld
  {
      class MainClass
      {
          public static void Main (string[] args)
          {
              List&lt;Envelops&gt; env = new List&lt;Envelops&gt; ();
              Envelops e = new Envelops { ReportDate = DateTime.Now };
              env.Add (e);
              e = new Envelops { ReportDate = DateTime.Now.AddDays (5) };
              env.Add (e);
              e = new Envelops { ReportDate = new DateTime (2011, 3, 3) };
              env.Add (e);
              e = new Envelops { ReportDate = DateTime.Now };
              env.Add (e);
  
              foreach (Envelops r in env) {
                  Console.WriteLine (  r.ReportDate.ToString("yyyy-MMM"));
              }
  
              var ud = (from d in env                  
                  select  d.ReportDate.ToString("yyyy-MMM") ).Distinct();     
  
              Console.WriteLine ("After distinct");
  
              foreach (var r in ud) {
                  Console.WriteLine (r);
              }
  
          }
      }
  
      class Envelops
      {
          public DateTime ReportDate { get; set; }
      }
  
  }`enter code here`
  </code></pre>
  
  <p><strong>the current output is:</strong></p>
  
  <pre><code>2011-Apr
  2011-May
  2011-Mar
  2011-Apr
  After distinct
  2011-Apr
  2011-May
  2011-Mar
  </code></pre>
  
  <p>I want the output to in the following order:</p>
  
  <pre><code>may
  april
  march order
  </code></pre>