深入理解 c# 第十一章 使用另一个投影来计数一个分组 查询延续

    class GroupDefectsByAssigneeWithContinuation
    {
        static void Main()//查询延续 使用另一个投影来计数一个分组
            var query = from defect in SampleData.AllDefects
                        where defect.AssignedTo != null
//41个缺陷 剩下40个就不贴出了						
//{ 1: MP3 files crash system    (2013/5/1-2013/5/23, Showstopper/Accepted, Tim Trotter -> Darren Dahlia)}						
                        group defect by defect.AssignedTo into grouped
                        select new { Assignee = grouped.Key, Count = grouped.Count() };
//{System.Linq.Enumerable.WhereSelectEnumerableIterator<System.Linq.IGrouping<Chapter11.Model.User,Chapter11.Model.Defect>,<>f__AnonymousTypea<Chapter11.Model.User,int>>}

            foreach (var entry in query)
//entry
//{ Assignee = {User: Darren Dahlia (Developer)}, Count = 14 }			
//{ Assignee = {User: Tara Tutu (Tester)}, Count = 5 }
//{ Assignee = {User: Tim Trotter (Tester)}, Count = 5 }
//{ Assignee = {User: Deborah Denton (Developer)}, Count = 9 }
//{ Assignee = {User: Colin Carton (Customer)}, Count = 2 }
            {
                Console.WriteLine("{0}: {1}",
                                  entry.Assignee.Name,
                                  entry.Count);
            }
        }
    }


  查询延续提供了一种方式,把一个查询表达式的结果用作另外一个查询表达式的初始序列。它可以
应用于group...by和select子句上,语法对于两者是一样的--你只需使用上下文关键字into,并为新的
范围变量提供一个名称就可以了。范围变量接着能在查询表达式的下一部分。
  只需要分配给每个人的缺陷的数量。我们不在分组子句中用投影来完成,因为那只是应用到了
每个独立的缺陷上。打算对包含分配者和缺陷序列的分组进行投影,最终的单个元素由分组中的
分配者机器分配的缺陷数量组成。
输出
Darren Dahlia: 14
Tara Tutu: 5
Tim Trotter: 5
Deborah Denton: 9
Colin Carton: 2


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值