LINQ 组按 x 天数

hoo*_*ozr 3 c# linq

我有一个对象列表 List<StatisticsData>

   public class StatisticsData
{
    public Guid Id { get; set; }
    public string Name { get; set; }    
    public DateTime EndTime { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

示例值:

22-02-2020 | StatisticsData 
21-02-2020 | StatisticsData 
20-02-2020 | StatisticsData
19-02-2020 | StatisticsData 
19-02-2020 | StatisticsData 
18-02-2020 | StatisticsData
17-02-2020 | StatisticsData 
16-02-2020 | StatisticsData 
15-02-2020 | StatisticsData
Run Code Online (Sandbox Code Playgroud)

我的目标是将其分成批次 X 天。例如,如果我想参加 2 天的条目,结果我将收到:

第一批:

 22-02-2020 | StatisticsData 
 21-02-2020 | StatisticsData 
Run Code Online (Sandbox Code Playgroud)

第二批:

 20-02-2020 | StatisticsData
 19-02-2020 | StatisticsData 
 19-02-2020 | StatisticsData 
Run Code Online (Sandbox Code Playgroud)

第三批:

 18-02-2020 | StatisticsData
 17-02-2020 | StatisticsData 
Run Code Online (Sandbox Code Playgroud)

等等...

我坚持使用 LINQ 来实现它..

Jon*_*eet 5

决定两天时段开始的某个“时期”(例如DateTime.MinValue,避免担心负值),然后按时段索引分组:

var batches = data.GroupBy(stat => (int) (stat.EndTime - DateTime.MinValue).TotalDays / 2);
Run Code Online (Sandbox Code Playgroud)