我有一个日期列表(格式为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);