LINQ orderby on date field in descending order

前端 未结 4 488
广开言路
广开言路 2020-12-24 06:18

How can I change the LINQ query in the code below to sort by date in descending order (latest first, earliest last)?

using System;
using System.Linq;
using S         


        
相关标签:
4条回答
  • 2020-12-24 06:30

    I don't believe that Distinct() is guaranteed to maintain the order of the set.

    Try pulling out an anonymous type first and distinct/sort on that before you convert to string:

    var ud = env.Select(d => new 
                             {
                                 d.ReportDate.Year,
                                 d.ReportDate.Month,
                                 FormattedDate = d.ReportDate.ToString("yyyy-MMM")
                             })
                .Distinct()
                .OrderByDescending(d => d.Year)
                .ThenByDescending(d => d.Month)
                .Select(d => d.FormattedDate);
    
    0 讨论(0)
  • 2020-12-24 06:36

    I was trying to also sort by a DateTime field descending and this seems to do the trick:

    var ud = (from d in env 
         orderby -d.ReportDate.Ticks                 
         select  d.ReportDate.ToString("yyyy-MMM") ).Distinct(); 
    
    0 讨论(0)
  • 2020-12-24 06:42
    env.OrderByDescending(x => x.ReportDate)
    
    0 讨论(0)
  • 2020-12-24 06:44

    This statement will definitely help you:

    env = env.OrderByDescending(c => c.ReportDate).ToList();
    
    0 讨论(0)
提交回复
热议问题