有大佬会查询每天的第一条数据嘛,使用linq表达式

用每天的第一条数据去减其余今天的数据嘛

累计减累计,每天的第一条减其余条,求求各位大佬了

是每天第一条的累计用量减去每天其余的累计用户吗?可以具体以表格中的数据说明一下你的需求

是每一天还是当天

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)结果来分组,这样分别算出累计用量

您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题。

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~