快速业务通道

ASP.NET通过WMI创建站点添加虚拟目录和主机头

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-14
询”语句:

   1: from file in files
   2:  
   3: group file.ToUpper() by Path.GetExtension(file)
   4:  
   5: into grouping
   6:  
   7: orderby grouping.Key
   8:  
   9: select grouping;

 

延续查询通常在group by查询中是很有用的,以下示例显示那些文件总数小于5的分组目录:

   1: from file in files
   2:  
   3: group file. ToUpper()by Path.GetExtension (file)
   4:  
   5: into grouping
   6:  
   7: where grouping.Count() < 5
   8:  
   9: select grouping;

 

有些时候你可能只需要得到一个组的聚合结果,因此你可以丢弃子序列:

   1: string[] votes = {“Bush”,“Gore”,“Gore”,“Bush”,“Bush” };
   2:  
   3: IEnumerable<string> query = from vote in votes
   4:  
   5: group vote by vote into g
   6:  
   7: orderby g.Count() descending
   8:  
   9: select g.Key;
  10:  
  11: string winner = query.First(); // Bush

 

LINQ to SQL当中的GroupBy

Grouping在解释性查询中的工作方式与上述是一样的. 当然, 如果你在LINQ to SQL实体当中有关联属性, 你会发现需要使用group的时候比在标准SQL当中要少很多.例如, 要找到那些采购订单不少于两个的客户, 我们并不需要group, 以下示例就可以了:

   1: from c in dataContext.Customers
   2:  
   3: where c.Purchases.Count >= 2
   4:  
   5: select c.Name + ” has made “ + c.Purchases.Count
   6:  
   7: + ” purchases”;

 

另外一个你可能需要分组的例子是计算年度收入:

   1: from p in dataContext.Purchases
   2:  
   3: group p.Price by p.Date.Year into salesByYear
   4:  
   5: select new {
   6:  
   7: Year = salesByYear.Key,
   8:  
   9: TotalValue = salesByYear.Sum()
  10:  
  11: };

 

多主键分组

我们可以使用一个匿名类型根据一个符合主键进行分组

   1: from n in names
   2:  
   3: group n by new { FirstLetter = n[0], Length = n.Length };

 

自定义Comparer

对于本地查询,你可以传递一个自定义的comparer到GroupBy中

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号