Я пытаюсь создать запрос linq, который создаст коллекцию диапазонов дат с суммой значения Capacity, взятого в учетную запись, которая может перекрываться, и мне нужна сумма и определенный диапазон дат для этих перекрывающихся периодов. Благодарю.Запрос LINQ для суммирования значений в диапазонах дат
public ActionResult Index()
{
List<Capacities> _list = new List<Capacities>{
new Capacities {StartDate = DateTime.Parse("01/01/2013"), StopDate = DateTime.Parse("01/01/2013 06:00"), Capacity = 100},
new Capacities {StartDate = DateTime.Parse("01/01/2013 04:00"), StopDate = DateTime.Parse("01/02/2013 00:00"), Capacity = 120},
new Capacities {StartDate = DateTime.Parse("01/04/2013"), StopDate = DateTime.Parse("01/04/2013 15:00"), Capacity = 100},
new Capacities {StartDate = DateTime.Parse("01/04/2013 15:00"), StopDate = DateTime.Parse("01/04/2013 18:00"), Capacity = 150}
};
//results expected
//01/01/2013 00:00 - 01/01/2013 04:00 100
//01/01/2013 04:00 - 01/01/2013 06:00 220
//01/01/2013 06:00 - 01/02/2013 00:00 120
//01/04/2013 00:00 - 01/04/2013 15:00 100
//01/04/2013 15:00 - 01/04/2013 18:00 150
return View();
}
public class Capacities
{
public DateTime StartDate { get; set; }
public DateTime StopDate { get; set; }
public int Capacity {get;set;}
}
Что вы пробовали? У вас есть решение с циклами и вы хотите преобразовать его в LINQ? Вы примете решение без LINQ? –
В надежде заменить старый код, который будет перемещаться по множеству и разделять перекрывающиеся диапазоны, а затем пересекать его, чтобы суммировать емкости, создающие новый массив. Да, я искал запрос linq. Благодарю. – user177194
Я думаю, что могу придумать LINQ, но это будет некрасиво. Первое решение, вероятно, более понятно. –