linq的一些寫法

  

示例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兩個屬性。
相關文章
相關標籤/搜索