C#学习教程:LINQ orderby在日期字段中按降序排列分享


LINQ orderby在日期字段中按降序排列

如何在下面的代码中更改LINQ查询,按日期降序排序(最新的,最早的,最后一个)?

using System; using System.Linq; using System.Collections.Generic; namespace Helloworld { class MainClass { public static void Main (string[] args) { List env = new List (); 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` 

目前的输出是:

 2011-Apr 2011-May 2011-Mar 2011-Apr After distinct 2011-Apr 2011-May 2011-Mar 

我想按以下顺序输出:

 may april march order 

我不相信Distinct()可以保证维持集合的顺序。

在转换为字符串之前,首先尝试拔出一个匿名类型并对其进行distinct / sort:

 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); 

 env.OrderByDescending(x => x.ReportDate) 

这句话肯定会帮助你:

env = env.OrderByDescending(c => c.ReportDate).ToList();

上述就是C#学习教程:LINQ orderby在日期字段中按降序排列分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1031911.html

(0)
上一篇 2022年1月14日 上午6:04
下一篇 2022年1月14日 上午6:07

精彩推荐

发表评论

您的电子邮箱地址不会被公开。