【发布时间】:2017-06-12 12:42:25
【问题描述】:
我有一个带有日期的记录列表。我想按月和年对这个列表进行分组,例如,我可以将日期范围从 2012 年 10 月到 2013 年 3 月,然后从 2013 年 4 月到 2013 年 9 月,然后从 2013 年 10 月到 2014 年 3 月,最后从 2014 年 4 月到 2014 年 9 月
所以我希望将数据分成 4 组,每组跨越 6 个月的时间段 所以 2012 年 10 月 - 2013 年 3 月 2013 年 4 月 - 2013 年 9 月 2013 年 10 月 - 2014 年 3 月 2014 年 4 月 - 2014 年 9 月
我想出了如何按月份范围分组,但我不知道如何包括年份(我目前有 2 个组),这是我到目前为止所拥有的
var season = List.GroupBy(item => ((item.StartDate.Month - 1) / 6));
【问题讨论】:
-
解决一个更简单的问题。如果范围是 1 月到 6 月和 7 月到 12 月,您能看看如何正确分组吗?
-
您可能可以按自最小日期起经过多少个月进行分组。即您可以通过
var minDate = List.Min(l => l.StartDate)设置最小日期,然后通过var season = List.GroupBy(item => (item.StartDate - minDate).TotalMonths/6)分组......类似的东西