mir*_*osz 1 c# sorting date list
我有一个字符串列表,每个字符串是一个月+年.我在这里找到了类似的问题,但这只是几个月的清单.所以我的清单看起来像那样
List<string> monthsList = new List<string>();
monthsList.Add("August 2015");
monthsList.Add("June 2014");
monthsList.Add("February 2014");
monthsList.Add("June 2015");
Run Code Online (Sandbox Code Playgroud)
有没有办法这样订购?
February 2014
June 2014
June 2015
August 2015
Run Code Online (Sandbox Code Playgroud)
确保将DateTime.Parse格式更改为除月份之外的年份:
DateTime.ParseExact(x, "MMMM yyyy", CultureInfo.InvariantCulture)
Run Code Online (Sandbox Code Playgroud)
然后确保更改OrderBy密钥选择器,使其考虑整个日期,而不仅仅是执行排序的月份:
.OrderBy(x => x.Sort)
Run Code Online (Sandbox Code Playgroud)
完整的代码如下所示:
var sortedMonths = monthsList
.Select(x => new { Name = x, Sort = DateTime.ParseExact(x, "MMMM yyyy", CultureInfo.InvariantCulture) })
.OrderBy(x => x.Sort)
.Select(x => x.Name)
.ToArray();
Run Code Online (Sandbox Code Playgroud)