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

10-06 14:46