• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
光脚丫思考的专栏
十年窗下无人问,一举成名天下知!
博客园    首页    新随笔    联系   管理    订阅  订阅

光脚丫学LINQ(004):分组数据

视频演示:http://u.115.com/file/f27504ff61

使用 group 子句,您可以按指定的键分组结果。例如,您可以指定结果应按 City 分组,以便位于伦敦或巴黎的所有客户位于各自组中。在本例中,Customer.City是键。

NorthwindDataContext db = new NorthwindDataContext();   
var AllCustomers = from Customer in db.Customers   
                   group Customer by Customer.City;   
foreach (var CustomerGroup in AllCustomers)   
{   
    Console.WriteLine("---------------------");   
    Console.WriteLine("City : {0}", CustomerGroup.Key);   
    foreach (var Customer in CustomerGroup)   
    {   
        Console.WriteLine("Customer Name : {0}", Customer.ContactName);   
    }   
}  
NorthwindDataContext db = new NorthwindDataContext();
var AllCustomers = from Customer in db.Customers
                   group Customer by Customer.City;
foreach (var CustomerGroup in AllCustomers)
{
    Console.WriteLine("---------------------");
    Console.WriteLine("City : {0}", CustomerGroup.Key);
    foreach (var Customer in CustomerGroup)
    {
        Console.WriteLine("Customer Name : {0}", Customer.ContactName);
    }
} 


在使用 group 子句结束查询时,结果采用列表的列表形式。列表中的每个元素是一个具有 Key 成员及根据该键分组的元素列表的对象。在循环访问生成组序列的查询时,您必须使用嵌套的 foreach 循环。外部循环用于循环访问每个组,内部循环用于循环访问每个组的成员。
如果您必须引用组操作的结果,可以使用 into 关键字来创建可进一步查询的标识符。下面的查询只返回那些包含两个以上的客户的组:

NorthwindDataContext db = new NorthwindDataContext();   
var AllCustomers = from Customer in db.Customers   
                   group Customer by Customer.City into CustomerGroup   
                   where CustomerGroup.Count() > 2   
                   orderby CustomerGroup.Key   
                   select CustomerGroup;  

posted @ 2010-10-28 22:52  光脚丫思考  阅读(390)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3