C# Linq及Lamda表達式實戰應用之 GroupBy 分組統計


在項目中做統計圖表的時候,需要對查詢出來的列表數據進行分組統計,首先想到的是避免頻繁去操作數據庫可以使用 Linq

eg:

//例如對列表中的Cu元素進行按年GroupBy分組統計
//包含年份,平均值,最大值,總數

//寫法1:lamda 表達式寫法(推薦)
 var listCu = list.GroupBy(a => a.Year).Select(g =>(new{ year=g.Key,avg=g.Average(m=>m.Cu),max=g.Max(n=>n.Cu),count=g.Count()}));
//寫法2:類SQL語言寫法 最終編譯器會把它轉化為lamda表達式
 var listCu2 = from item in list
                    group item by item.Year
                    into g
                    select new { year = g.Key, avg = g.Average(m => m.Cu), max = g.Max(n => n.Cu), count = g.Count() };

 類似效果圖(統計了各個元素每一年的平均值):

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM