当前位置:网站首页 / C#人爱学不学 / 正文

LINQ分组查询统计

时间:2016年08月19日 | 作者 : aaronyang | 分类 : C#人爱学不学 | 浏览: 1116次 | 评论 0

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


====================www.ayjs.net       杨洋    wpfui.com        ayui      ay  aaronyang=======请不要转载谢谢了。=========

推荐您阅读更多有关于“LINQ,”的文章

猜你喜欢

额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  查看权限

抖音号:wpfui,可以看到我的很多作品效果

AYUI8社区版Github地址:前往获取

作者:杨洋(AaronYang简称AY,安徽六安人)目前是个人,还没公司AY唯一QQ:875556003和AY交流

高中学历,2015年1月17日开始,兴趣学习研究WPF,目前工作繁忙,不接任何活

声明:AYUI7个人与商用免费,源码可购买。部分DEMO不免费.AY主要靠卖技术服务挣钱

不是从我处购买的ayui7源码,我不提供任何技术服务,如果你举报从哪里买的,我可以帮你转正为我的客户,并送demo

查看捐赠

AYUI7.X MVC教程 更新如下:

第一课 第二课 程序加密教程

兼容XP到win10,vs2015/2017/2019,最新AYUI:7.6.5.5

vs2015 企业版密钥HM6NR-QXX7C-DFW2Y-8B82K-WTYJV

vs2017 企业版密钥NJVYC-BMHX2-G77MM-4XJMR-6Q8QF

标签列表