深入理解 c# 第十一章 查询表达式持续通过分组和查询 查询延续

    class GroupDefectsByAssigneeWithContinuationAndOrdering
    {
        static void Main()//查询表达式持续通过分组和查询  查询延续
        {
            var query = from defect in SampleData.AllDefects
                        where defect.AssignedTo != null
//defect 有41个缺陷 就不一一贴出来了
//{ 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()
                        } into result
                        orderby result.Count descending
//{ Assignee = {User: Darren Dahlia (Developer)}, Count = 14 }
//{ Assignee = {User: Deborah Denton (Developer)}, Count = 9 }
//{ Assignee = {User: Tara Tutu (Tester)}, Count = 5 }
//{ Assignee = {User: Tim Trotter (Tester)}, Count = 5 }
//{ Assignee = {User: Colin Carton (Customer)}, Count = 2 }						
                        select result;
//{System.Linq.OrderedEnumerable<<>f__AnonymousTypea<Chapter11.Model.User,int>,int>}
            foreach (var entry in query)
            {
                Console.WriteLine("{0}: {1}",
                                  entry.Assignee.Name,
                                  entry.Count);
            }
        }
    }


  多个延续如何使用。目前结果没有拍下,看谁分配到的缺陷最多。
  最后的select子句什么都没做,编译器忽略了它。所有查询表达式必须以select或group...by
子句来结尾,所以在查询表达式中必须包含它。而且,你可以自由地针对延续查询使用不同的
投影或执行其他操作---连接、进一步分组等等。  
输出
Darren Dahlia: 14
Deborah Denton: 9
Tara Tutu: 5
Tim Trotter: 5
Colin Carton: 2

猜你喜欢

转载自blog.csdn.net/eyetired/article/details/80286129