博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linq 分组统计
阅读量:6315 次
发布时间:2019-06-22

本文共 1504 字,大约阅读时间需要 5 分钟。

这里介绍Linq使用Group By和Count得到每个CategoryID中产品的数量,Linq使用Group By和Count得到每个CategoryID中断货产品的数量等方面。

学经常会遇到Linq使用Group By问题,这里将介绍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分类。其结果分为两类,大于的是一类,小于及等于为另一类。

 

转载地址:http://uakaa.baihongyu.com/

你可能感兴趣的文章
【CAS单点登录视频教程】 第04集 -- tomcat下配置https环境
查看>>
自适应网页布局经验
查看>>
Ubuntu apache 禁止目录浏览
查看>>
常用脚本--归档ERRORLOG
查看>>
js网页倒计时精确到秒级
查看>>
常用CSS缩写语法总结
查看>>
TDD:什么是桩(stub)和模拟(mock)?
查看>>
C# 模拟POST提交文件
查看>>
PAT 解题报告 1004. Counting Leaves (30)
查看>>
Android开发之蓝牙 --修改本机蓝牙设备的可见性,并扫描周围可用的蓝牙设备
查看>>
[Head First设计模式]生活中学设计模式——外观模式
查看>>
Repository模式中,Update总是失败及其解析
查看>>
.Net 转战 Android 4.4 日常笔记(2)--HelloWorld入门程序
查看>>
[原创]浅谈测试团队转型,思维模式的转变是关键
查看>>
Redis学习-SortedSet
查看>>
android CoordinatorLayout使用
查看>>
机器学习资料大汇总
查看>>
Python selenium 滚动条 详解
查看>>
poj1035Spell checker
查看>>
微信程序开发
查看>>