zoukankan      html  css  js  c++  java
  • c# linq分组 lambda分组

                    var groupResults = from gr in models
                                       where gr.Noise != 0 && gr.Temperature != 0 && gr.Humidity != 0 && gr.Pm25 != 0
                                       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 != 0 && m.Temperature != 0 && m.Humidity != 0 && m.Pm25 != 0)
                                            .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,
                                            });

     两者效果一样

  • 相关阅读:
    【JAVA】java 堆溢出分析
    【数据结构】链表的基本学习 实现
    【其他】博客园自定义样式指南
    【JAVA】一些好用的开源java类库
    【Shell】Shell 常用命令
    【Spring】Spring Boot 要点整理
    【数据库】Mysql 连接相关
    【Linux】Shell 参数解析
    Erlang 中类型转换
    erlang 中 maps 练习
  • 原文地址:https://www.cnblogs.com/subendong/p/11980838.html
Copyright © 2011-2022 走看看