using System.Collections.Generic;
public static void Main()
var dt = DateTime.Parse("01.01.2021");
var input = Enumerable.Range(0, 10)
.Select(x => new { Date = dt.AddDays(x), Ammount = 120 })
var result = Partition(input, (x) => x.Date, TimeSpan.FromDays(partitionSize))
.Select(p=> new { Date = p.Min(x=> x.Date), Ammount= p.Sum(x=>x.Ammount) });
FiddleHelper.WriteTable(result);
static IEnumerable<List<T>> Partition<T>(List<T> input, Func<T, DateTime> DateSelector, TimeSpan partitionSize)
var partitionEnd = DateSelector(input.First()).Add(partitionSize);
var partition = new List<T>();
foreach (var element in input)
var dt = DateSelector(element);
partition = new List<T>();
partitionEnd = dt.Add(partitionSize);