用每天的第一条数据去减其余今天的数据嘛
累计减累计,每天的第一条减其余条,求求各位大佬了
是每天第一条的累计用量减去每天其余的累计用户吗?可以具体以表格中的数据说明一下你的需求
是每一天还是当天
class Program
{
static void Main(string[] args)
{
List<Data> list = new List<Data>();
list.Add(new Data() { Id = 1, Date = Convert.ToDateTime("2021-3-15 06:10:00"), value = 11900 });
list.Add(new Data() { Id = 2, Date = Convert.ToDateTime("2021-3-15 06:20:00"), value = 12000 });
list.Add(new Data() { Id = 3, Date = Convert.ToDateTime("2021-3-15 06:30:00"), value = 12100 });
list.Add(new Data() { Id = 4, Date = Convert.ToDateTime("2021-3-15 06:40:00"), value = 12200 });
list.Add(new Data() { Id = 5, Date = Convert.ToDateTime("2021-3-15 06:50:00"), value = 12300 });
list.Add(new Data() { Id = 6, Date = Convert.ToDateTime("2021-3-15 07:00:00"), value = 12400 });
list.Add(new Data() { Id = 7, Date = Convert.ToDateTime("2021-3-16 06:10:00"), value = 12500 });
list.Add(new Data() { Id = 8, Date = Convert.ToDateTime("2021-3-16 06:20:00"), value = 12600 });
list.Add(new Data() { Id = 9, Date = Convert.ToDateTime("2021-3-16 06:30:00"), value = 12700 });
list.Add(new Data() { Id = 10, Date = Convert.ToDateTime("2021-3-16 06:40:00"), value = 12800 });
list.Add(new Data() { Id = 11, Date = Convert.ToDateTime("2021-3-16 06:50:00"), value = 12900 });
list.Add(new Data() { Id = 12, Date = Convert.ToDateTime("2021-3-16 07:00:00"), value = 13000 });
//当天
var data = list.Where(w => w.Date >= DateTime.Now.Date).OrderByDescending(o => o.Date).FirstOrDefault();
var data2 = list.Where(w => w.Date >= DateTime.Now.Date).OrderByDescending(o => o.Date).LastOrDefault();
if (data != null && data2 != null)
{
Console.WriteLine(data.value - data2.value);
}
//每天
var datas = list.GroupBy(g => g.Date.Date).ToList();
foreach (var item in datas)
{
var list2 = item.ToList();
var data3 = list2.OrderByDescending(o => o.Date).FirstOrDefault();
var data4 = list2.OrderByDescending(o => o.Date).LastOrDefault();
if (data3 != null && data4 != null)
{
Console.WriteLine(item.Key);
Console.WriteLine(data3.value - data4.value);
}
}
}
}
class Data
{
public int Id { get; set; }
public DateTime Date { get; set; }
public int value { get; set; }
}
没写过linq,提供个思路:
增加一列rowid用于分组,用这个表达式if(rowid=1,1,2)结果来分组,这样分别算出累计用量
您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题。
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~