C#学习教程:使用C#中的日期对字符串列表进分享


使用C#中的日期对字符串列表进

我有一个带有日期的List
我的清单是:

 {"01/01/2013","10/01/2013","20/01/2013"} 

我想将列表排序为如下所示:

 {"20/01/2013","10/01/2013","01/01/2013"} 

我该怎么做?

用linq:

 var list = new List {"01/01/2013", "10/01/2013", "20/01/2013"}; var orderedList = list.OrderByDescending(x => DateTime.Parse(x)).ToList(); 

你不应该使用数据的字符串表示 – 我们都生活在面向对象的世界:)

最好的方法是将这些字符串转换为实际的DateTime对象,并通过linq以相反的顺序对它们进行排序:

 var dates = Array.ConvertAll(dateStrings, x => DateTime.Parse(x)); return dates.OrderByDesc(x => x); 

另一种方法是实现自定义排序function,请参阅此链接 。 然后你只需在排序函数中使用它:

 DateAsStringComparer myComparer = new DateAsStringComparer(); dateStrings.Sort(myComparer); 

试试这个:

 List s = new List() { "01/01/2013", "10/01/2013", "20/01/2013" }; var d = s.OrderByDescending(i => DateTime.ParseExact(i, "dd/MM/yyyy", null)); 

因为它们是英国/ AUS格式(日/月/年),您可以使用OrderByDescending对它们进行OrderByDescending

 List dates = new List() { "01/01/2013", "10/01/2013", "20/10/2013" }; foreach (var date in dates.OrderByDescending(x => x)) Console.WriteLine(date); 

我个人首先将它们转换为DateTime对象..

为什么要使用List而不是List

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

 List dates = ... dates.OrderByDescending(c => c).ToList(); 

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

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

(0)
上一篇 1天前
下一篇 1天前

精彩推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注