LINQ分組查詢統計

LINQ分組查詢統計

  • 這裏介紹Linq使用Group By和Count獲得每一個CategoryID中產品的數量,Linq使用Group By和Count獲得每一個CategoryID中斷貨產品的數量等方面。html

    學常常會遇到Linq使用Group By問題,這裏將介紹Linq使用Group By問題的解決方法。函數

    1.計數spa

    1. var q =翻譯

    2. from p in db.Productshtm

    3. group p by p.CategoryID into g對象

    4. select new {blog

    5. g.Key,ip

    6. NumProducts = g.Count()get

    7. };產品

    語句描述:Linq使用Group By和Count獲得每一個CategoryID中產品的數量。

    說明:先按CategoryID歸類,取出CategoryID值和各個分類產品的數量。

    2.帶條件計數

    1. var q =

    2. from p in db.Products

    3. group p by p.CategoryID into g

    4. select new {

    5. g.Key,

    6. NumProducts = g.Count(p => p.Discontinued)

    7. };

    語句描述:Linq使用Group By和Count獲得每一個CategoryID中斷貨產品的數量。

    說明:先按CategoryID歸類,取出CategoryID值和各個分類產品的斷貨數量。 Count函數裏,使用了Lambda表達式,Lambda表達式中的p,表明這個組裏的一個元素或對象,即某一個產品。

    3.Where限制

    1. var q =

    2. from p in db.Products

    3. group p by p.CategoryID into g

    4. where g.Count() >= 10

    5. select new {

    6. g.Key,

    7. ProductCount = g.Count()

    8. };

    語句描述:根據產品的―ID分組,查詢產品數量大於10的ID和產品數量。這個示例在Group By子句後使用Where子句查找全部至少有10種產品的類別。

    說明:在翻譯成SQL語句時,在最外層嵌套了Where條件。

    4.多列(Multiple Columns)

    1. var categories =

    2. from p in db.Products

    3. group p by new

    4. {

    5. p.CategoryID,

    6. p.SupplierID

    7. }

    8. into g

    9. select new

    10. {

    11. g.Key,

    12. g

    13. };

    語句描述:Linq使用Group By按CategoryID和SupplierID將產品分組。

    說明:既按產品的分類,又按供應商分類。在by後面,new出來一個匿名類。這裏,Key其實質是一個類的對象,Key包含兩個Property:CategoryID、SupplierID。用g.Key.CategoryID能夠遍歷CategoryID的值。

    5.表達式(Expression)

 List<Maticsoft.Model.V_StripFQCPrint> FQC_Lot_no = FQCList.OrderBy(O => O.Lot_n).ThenBy(T => T.YXLevel).ThenBy(T => T.Colors).ToList();
                    var q = from p in FQC_Lot_no group p by new { p.YXLevel, Criterion = int.Parse(p.Colors) <= 10 } into g select new { g.Key, newcount = g.Count() };//按YXLevel   和  p.Colors) 大於10 小於10分類。             

  foreach (var item in q)                    {                        dicZlot_no.Add(item.Key.ToString(), item.newcount);                    }////把分出來的序列放入字典

相關文章
相關標籤/搜索