scg*_*ugh 2 c# linq arrays datetime list
我之前在这里问过这个问题:以某种方式订购的日期列表
我认为建议的解决方案没问题,直到我的日期列表上的年份已经过去并遇到问题.
我的日期列表(以这种基于字符串的格式 - 这是数据来自源API的方式)
201711
201712
201801
201811
201812
201901
Run Code Online (Sandbox Code Playgroud)
我想在条形图中显示我的数据,以按月顺序显示3个月的年度比较.这意味着我按顺序排列列表
201711
201811
201712
201812
201801
201901
Run Code Online (Sandbox Code Playgroud)
所以我可以按顺序查看11月,12月和1月的年度酒吧.
我已经在问题的底部尝试了解决方案,但是它按顺序放置了这个顺序(这不是我想要的):
201801
201901
201711
201811
201712
201812
Run Code Online (Sandbox Code Playgroud)
为清楚起见,下个月它需要继续作为这个日期列表:
我想要的第一个月总是比现在的那个月早2个月
201712
201812
201801
201901
201802
201902
Run Code Online (Sandbox Code Playgroud)
var rowsInOrder = dateList.OrderBy(n => DateTime.ParseExact(n, "yyyyMM", CultureInfo.CurrentCulture).Month).ThenBy(n=> DateTime.ParseExact(n, "yyyyMM", CultureInfo.CurrentCulture).Year);
Run Code Online (Sandbox Code Playgroud)
您可以使用首先确定月份组的查找方法:
var monthLookup = dateList
.Select(s => new{String = s, Date = DateTime.ParseExact(s, "yyyyMM", CultureInfo.CurrentCulture)})
.OrderBy(x => x.Date) // not necessary in your sample data but i assume it's desired
.ToLookup(x=> x.Date.Month);
var rowsInOrder = monthLookup.SelectMany(x => x).Select(x => x.String);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |