• Linq使用Group By经验总结


    1.计数
    var q =  from p in db.Products  group p by p.CategoryID into g  select new {  g.Key,  NumProducts = g.Count()  }; 
    语句描画:Linq运用Group By和Count失掉每个CategoryID中产物的数目。
    说明:先按CategoryID归类,取出CategoryID值和各个分类产物的数目。
     
    2.带请求计数
    var q =  from p in db.Products  group p by p.CategoryID into g  select new {  g.Key,  NumProducts = g.Count(p => p.Discontinued)  }; 
    语句描画:Linq运用Group By和Count失掉每个CategoryID中缀货产物的数目。
    说明:先按CategoryID归类,取出CategoryID值和各个分类产物的断货数目。 Count函数里,运用了Lambda表达式,Lambda表达式中的p,代表这个组里的一个元素或对象,即某一个产物。
     
    3.Where约束
    var q =  from p in db.Products  group p by p.CategoryID into g  where g.Count() >= 10  select new {  g.Key,  ProductCount = g.Count()  }; 
    语句描画:依据产物的―ID分组,查询产物数目大于10的ID和产物数目。这个示例在Group By子句后运用Where子句查找全部至少有10种产物的类别。
    说明:在翻译成SQL语句时,在最外层嵌套了Where请求。
     
    4.多列(Multiple Columns)
    var categories =  from p in db.Products  group p by new  {  p.CategoryID,  p.SupplierID  }  into g  select new  {  g.Key,  g  }; 
    语句描画:Linq运用Group By按CategoryID和SupplierID将产物分组。
    说明:既按产物的分类,又按供应商分类。在by后面,new出来一个匿名类。这里,Key实践上质是一个类的对象,Key包括两个Property:CategoryID、SupplierID。用g.Key.CategoryID可以遍历CategoryID的值。
     
    5.表达式(Expression)
    var categories =  from p in db.Products  group p by new { Criterion = p.UnitPrice > 10 } into g  select g; 
    语句描画:Linq运用Group By前往两个产物序列。第一个序列包括单价大于10的产物。第二个序列包括单价小于或等于10的产物。
    说明:按产物单价可否大于10分类。其结果分为两类,大于的是一类,小于及等于为另一类。 
  • 相关阅读:
    AVR开发 Arduino方法(六) 内存子系统
    AVR开发 Arduino方法(五) 模数转换子系统
    AVR开发 Arduino方法(四) 串行通信子系统
    AVR开发 Arduino方法(三) 定时/计数器子系统
    AVR开发 Arduino方法(二) 中断子系统
    2014.5.17—所谓生活,就是让自己变得更好
    2014.5.10—做事分清时间地点
    2014.5.7—社交网络用户心理分析
    2014.5.7—20岁这几年
    2014.5.5—反向绑定域名,无需工信部备案
  • 原文地址:https://www.cnblogs.com/sky6699/p/4882212.html
Copyright © 2020-2023  润新知