示例1:對象
GroupBy 分組在List<>泛型中的應用編譯器
原表:it
按姓名Nam 分組後結果:編譯
//寫法1:lamda 表達式寫法(推薦) var ls = persons1.GroupBy(a => a.Name).Select(g => (new { name = g.Key, count = g.Count(), ageC = g.Sum(item => item.Age), moneyC = g.Sum(item => item.Money) }));
//寫法2:類SQL語言寫法 最終編譯器會把它轉化爲lamda表達式 var ls2 = from ps in persons1 group ps by ps.Name into g select new { name = g.Key, count = g.Count(), ageC = g.Sum(item => item.Age), moneyC = g.Sum(item => item.Money) }; 補充下,若是是多列分組的話:var ls = persons1.GroupBy(a => new { a.Name, a.Age }).Select(g => (new { name1 = g.Key, count1 = g.Count(), ageC1 = g.Sum(item => item.Age), moneyC1 = g.Sum(item => item.Money) }));結果中的name1實際上成爲一個對象,包含Name和Age兩個屬性。