欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » C# » 正文

热门阅读

在Linq中使用Group By示例

创建时间:2012年03月13日 21:01  阅读次数:(7241)
分享到:
我们将在下文中讲述几个在Linq中使用Group by的示例,以帮助大家了解Group by在Linq中的用法。

1.在Linq中使用Where条件,示例:
var q =  from p in db.Produces  group p by p.CatgID into g  where g.Count()  >= 10  select new {  g.Key,  ProduceCount = g.Count()  }; 

示例解说:根据产品的ID分组,查询产品数量大于10的ID和产品数量。这个示例在Group By子句后使用Where子句查找所有至少有10种产品的类别。
示例说明:该语句在翻译成SQL语句的时候,会在最外层嵌套Where条件。

2.查询数量
var q =  from p in db.Produces  group p by p.CatgID into g  select new {  g.Key,  NumProducts = g.Count()  };

示例解说:Linq使用Group By和Count得到每个CatgID中产品的数量。
示例说明:该语句在翻译成SQL语句的时候,会先按CatgID归类,取出CatgID值和各个分类产品的数量。

3.按条件查询数量
var q =  from p in db.Produces  group p by p.CatgID into g  select new {  g.Key,  
NumProducts = g.Count(p = > p.Discontinued)  };
 
示例解说:Linq使用Group By和Count得到每个CatgID中断货产品的数量。
示例说明:先按CatgID归类,取出CatgID值和各个分类产品的断货数量。 Count函数里,使用了Lambda表达式,Lambda表达式中的p,代表这个组里的一个元素或对象,即某一个产品。

4.利用表达式(Expression)查询
var categories =  from p in db.Produces  group p by new { Criterion = p.UnitPrice  > 10 } into g  select g; 

示例解说:Linq使用Group By返回两个产品序列。第一个序列包含单价大于10的产品。第二个序列包含单价小于或等于10的产品。
示例说明:按产品单价是否大于10分类。其结果分为两类,大于的是一类,小于及等于为另一类。

5.在group by按多列分组(Multiple Columns)
var categories =  from p in db.Produces  group p by new  {  p.CatgID,  p.SupplierID  }  into g  select new  {  g.Key,  g  }; 

示例解说:Linq使用Group By按CatgID和SupplierID将产品分组。
示例说明:既按产品的分类,又按供应商分类。在by后面,new出来一个匿名类。这里,Key其实质是一个类的对象,Key包含两个Property:CatgID、SupplierID。用g.Key.CatgID可以遍历CatgID的值。Icon=ico1;
  i=0;
  }
L
来源:
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 70+98=? 的结果(结果是:168)
结  果: