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分类。其结果分为两类,大于的是一类,小于及等于为另一类。

    6.定义归组对象
    var categories = from p in db.Products group new {Id=p.Id,Name=p.Name} by p.Id into g select g;
    语句描画:Linq按照新定义的匿名类型重组归组后每个元素的结构。
    说明:按照产品的Id进行归组,但在每组的具体元素中仅包含新定义类型的元素。
    该语句可以替换成:
    var categories = from p in db.Products group p by p.Id into g select new {Id=p.Id,Name=p.Name};
  • 相关阅读:
    RTK-Mannual-1-User Requirements&Installation and Uninstallation&Real-Time Positioning with RTKNAVI
    第一章-1.四元素的定义和性质
    ubuntu下的公式编辑器-latex
    SL-IMU-5、6-惯性导航解算方法以及惯性导航误差分析
    卫星导航系统-第16讲-船用惯性导航系统与卫星导航系统的组合-2
    卫星导航系统-第16讲-船用惯性导航系统与卫星导航系统的组合-1
    卫星导航系统-第14讲-差分定位方法-2
    卫星导航系统-第14讲-差分定位方法-1
    卫星导航系统-第13讲-差分定位方法-2
    【无线安全实践入门】破解WiFi密码的多个方法
  • 原文地址:https://www.cnblogs.com/AndyGe/p/3016253.html
Copyright © 2011-2022 走看看