LINQ数据统计问题
问题是这样的,我从数据库获得到一组原始数据名字叫historydatalist,里面的实体类定义如下:
public class HistoryData
{
Datetime datetime{get;set;}
float value1{get;set;}
float value2{get;set;}
float value3{get;set;}
float value4{get;set;}
}
现在我需要统计这个historydatalist,把原来的原始数据中每5分钟的数据取一次平均值(包括value1,value2,value3,value4)。
目前我的想法是这样:
var timeList = from p in historydatalist
where p.datetime.Minutes % 5 == 0
select p;
foreach(var time in timeList)
{
var data = from p in historydatalist
where p.datetime>time.AddMinutes(-5) && p.datetime <= time
select historydatalist.Average(q=>q.value1....)//写到这里就不知道怎么写了,不知道如何才能求出4个值的平均值
}
由于刚开始接触C#和LINQ以及Lamuda表达式所以不知道我这个思路对不对。
上午开了个帖子了,貌似我表达不是很清楚,所以重新开个帖子,望多多指教,感激不尽~~
------解决方案--------------------
select new {
时间 = p.First().datetime,
avgv1 = p.Average(x => x.value1),
avgv2 = ...
};
=>
select new {
时间 = g.First().datetime,
avgv1 = g.Average(x => x.value1),
avgv2 = ...
};