c# - 以某种方式排序的日期列表

标签 c# linq sorting

我有一个日期列表(格式为 yyyyMM 的字符串)如下:

201608
201609
201610
201708
201709
201710

我想将它们重新排序如下:

201608
201708
201609
201709
201610
201710

我想我可以颠倒字符串(即 016102)来对它们进行排序但是显然当月 >= 10 时它会导致问题导致列表如下所示:

201610
201710
201608
201708
201609
201709

我尝试了以下方法: MyList.OrderBy(n => string.Concat(n.datestring.Reverse())).Select(n => n);

有没有一种简洁的方法可以做到这一点(LINQ 会很好)?感谢您的帮助。

最佳答案

使用 LINQ,您按两位数月份然后是年份(和月份,但这无关紧要)排序:

var ans = src.OrderBy(s => s.Substring(4)).ThenBy(s => s);

关于c# - 以某种方式排序的日期列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53419895/

相关文章:

c# - 如何将 IEnumerable 列表传递给 MVC 中的 Controller ,包括复选框状态?

c# - 使用不等式的 Linq 外连接?

linux - 在 bash 中排序数据文件

javascript - 在 javaScript 中按字符串中的百分比对字符串数组进行排序的最佳方法是什么?

c# - Asp.Net Core 2.2 中 MvcJsonOptions 的 AddJsonOptions

c# - 使用 json.net 和 linq 在 json 中查找模式

c# - 使用泛型类型 System.Collections.Generic.List<T> 需要 1 个类型参数

c# - 将列表中的项目分配给列表中的另一个项目的最快方法

java - 将列表内容排序为新列表

c# - 验证命名约定? C#