正文
c# linq分组 lambda分组
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
var groupResults = from gr in models
where gr.Noise != && gr.Temperature != && gr.Humidity != && gr.Pm25 !=
group gr by new { gr.IP, gr.Name, gr.Port } into g
select new
{
g.Key.IP,
g.Key.Name,
g.Key.Port,
NoiseAvg = g.Average(m => m.Noise),
NoiseMax = g.Max(m => m.Noise),
NoiseMin = g.Min(m => m.Noise),
TemperatureAvg = g.Average(m => m.Temperature),
TemperatureMax = g.Max(m => m.Temperature),
TemperatureMin = g.Min(m => m.Temperature),
HumidityAvg = g.Average(m => m.Humidity),
HumidityMax = g.Max(m => m.Humidity),
HumidityMin = g.Min(m => m.Humidity),
Pm25Avg = g.Average(m => m.Pm25),
Pm25Max = g.Max(m => m.Pm25),
Pm25Min = g.Min(m => m.Pm25),
CollectTime = g.FirstOrDefault().CreatedTime
}; var groupResults2 = models.Where(m => m.Noise != && m.Temperature != && m.Humidity != && m.Pm25 != )
.GroupBy(m => new { m.IP, m.Name, m.Port }).Select(g => new
{
g.Key.IP,
g.Key.Name,
g.Key.Port,
NoiseAvg = g.Average(m => m.Noise),
NoiseMax = g.Max(m => m.Noise),
NoiseMin = g.Min(m => m.Noise),
TemperatureAvg = g.Average(m => m.Temperature),
TemperatureMax = g.Max(m => m.Temperature),
TemperatureMin = g.Min(m => m.Temperature),
HumidityAvg = g.Average(m => m.Humidity),
HumidityMax = g.Max(m => m.Humidity),
HumidityMin = g.Min(m => m.Humidity),
Pm25Avg = g.Average(m => m.Pm25),
Pm25Max = g.Max(m => m.Pm25),
Pm25Min = g.Min(m => m.Pm25),
CollectTime = g.FirstOrDefault().CreatedTime,
});
两者效果一样