Я пытаюсь подготовить данные для графика, используя LINQ.Вычислить отличие от предыдущего элемента с LINQ
Проблема, которую я не могу решить, как вычислить «разницу в предыдущий
В результате я ожидаю
ID = 1, Date = Теперь DiffToPrev = 0;.
ID = 1, Дата = теперь + 1, DiffToPrev = 3;
ID = 1, Дата = теперь + 2, DiffToPrev = 7;
ID = 1, Дата = теперь + 3, DiffToPrev = -6;
и т. Д.
Можете ли вы помочь мне создать такой запрос?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
public class MyObject
{
public int ID { get; set; }
public DateTime Date { get; set; }
public int Value { get; set; }
}
class Program
{
static void Main()
{
var list = new List<MyObject>
{
new MyObject {ID= 1,Date = DateTime.Now,Value = 5},
new MyObject {ID= 1,Date = DateTime.Now.AddDays(1),Value = 8},
new MyObject {ID= 1,Date = DateTime.Now.AddDays(2),Value = 15},
new MyObject {ID= 1,Date = DateTime.Now.AddDays(3),Value = 9},
new MyObject {ID= 1,Date = DateTime.Now.AddDays(4),Value = 12},
new MyObject {ID= 1,Date = DateTime.Now.AddDays(5),Value = 25},
new MyObject {ID= 2,Date = DateTime.Now,Value = 10},
new MyObject {ID= 2,Date = DateTime.Now.AddDays(1),Value = 7},
new MyObject {ID= 2,Date = DateTime.Now.AddDays(2),Value = 19},
new MyObject {ID= 2,Date = DateTime.Now.AddDays(3),Value = 12},
new MyObject {ID= 2,Date = DateTime.Now.AddDays(4),Value = 15},
new MyObject {ID= 2,Date = DateTime.Now.AddDays(5),Value = 18}
};
Console.WriteLine(list);
Console.ReadLine();
}
}
}
Это похоже на правильный ответ, но я не могу понять, как используй это. – Marty
Я предполагаю, что этот был бы более эффективен, чем ответ Бранимира, не так ли? – Marty
@ Мартинас: Это более общий, чем ответ Бранимира, и более эффективный, чем Феликс. –