Estoy tratando de preparar los datos para un gráfico con LINQ.Calcular la diferencia con el artículo anterior con LINQ
El problema que no puedo resolver es cómo calcular la "diferencia de anteriores
el resultado que espero es
ID = 1, Fecha = Ahora, DiffToPrev = 0;.
ID = 1, Fecha = ahora + 1, DiffToPrev = 3;
ID = 1, Fecha = ahora + 2, DiffToPrev = 7;
ID = 1, Fecha = ahora + 3, DiffToPrev = -6;
etc ...
¿Me puede ayudar a crear una consulta de este tipo?
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();
}
}
}
Esto parece una respuesta correcta, pero no puedo averiguar cómo usarlo – Marty
Supongo que este sería más eficiente que la respuesta de Branimir, ¿verdad? – Marty
@Martynas: Es más general que la respuesta de Branimir, y más eficiente que la de Félix. –