using System.Collections.Generic;
namespace ConsoleApplication1
public DateTime Date { get; set; }
public int Amount { get; set; }
public Field FieldGain { get; set; }
public static void Main(string[] args)
List<Item> list = new List<Item>() {
new Item() { Date = DateTime.Now.AddDays(-1) , Amount = 12, FieldGain = Field.one },
new Item() { Date = DateTime.Now.AddDays(-1) , Amount = 6, FieldGain = Field.one },
new Item() { Date = DateTime.Now.AddDays(-2) , Amount = 12, FieldGain = Field.two },
new Item() { Date = DateTime.Now.AddDays(-2) , Amount = 12, FieldGain = Field.two },
new Item() { Date = DateTime.Now.AddDays(-3) , Amount = 8, FieldGain = Field.one },
new Item() { Date = DateTime.Now.AddDays(-3) , Amount = 12, FieldGain = Field.three },
new Item() { Date = DateTime.Now.AddDays(-4) , Amount = 1, FieldGain = Field.two },
new Item() { Date = DateTime.Now.AddDays(-15) , Amount = 102, FieldGain = Field.one },
.OrderBy(x => x.FieldGain)
.GroupBy(x => x.FieldGain)
.ToDictionary(x => x.Key, x => new {
begin = x.ToList().Min(Item => Item.Date),
end = x.ToList().Min(Item => Item.Date),
SumAmount = x.ToList().Sum(Item => Item.Amount)
result_set.ForEach(x => {
(progess = progess + x.Value.SumAmount) +