zoukankan      html  css  js  c++  java
  • 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分类。其结果分为两类,大于的是一类,小于及等于为另一类。 
  • 相关阅读:
    编写isNull isArray isFunction的方法
    JS中Null与Undefined的区别
    css中关于transform、transition、animate的区别
    js数组去重的方法
    深入理解 Javascript 面向对象编程(转)
    js 创建类和继承的几种方法
    一道面试题,想明白之后好像锤自己几下~~
    关于offsetTop offsetHeight clientHeight scrollHeight scrollTop的区别研究
    alt和title的用法区别
    C++的黑科技(深入探索C++对象模型)
  • 原文地址:https://www.cnblogs.com/sky6699/p/4882212.html
Copyright © 2011-2022 走看看