我有一个对象列表
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 来实现它..
决定两天时段开始的某个“时期”(例如DateTime.MinValue,避免担心负值),然后按时段索引分组:
var batches = data.GroupBy(stat => (int) (stat.EndTime - DateTime.MinValue).TotalDays / 2);
Run Code Online (Sandbox Code Playgroud)