复杂的LINQ查询

Jee*_*van 7 c# linq

考虑一下这个集合

List<Person> people = new List<Person>
        {
            new Person{Name = "A", SSN="1", Age = 23},
            new Person{Name = "A", SSN="2", Age = 23},
            new Person{Name = "B", SSN="3", Age = 24},
            new Person{Name = "C", SSN="4", Age = 24},
            new Person{Name = "D", SSN="5", Age = 23}
        };
Run Code Online (Sandbox Code Playgroud)

问题是:如何编写LINQ查询以对Age on Person进行分组,然后计算具有相同名称的每个组中的人数?

我尝试使用group by运算符,嵌套查询所有可能性仍然无法弄清楚确切的查询.

此致,Jeez

dri*_*iis 9

怎么样

var ages  = from p in people 
            group p by p.Age into g
            select new { 
                Age = g.Key, 
                Count = g.Count(), 
                Names = from prs in g 
                        group prs by prs.Name
            };
Run Code Online (Sandbox Code Playgroud)

Names属性将具有名称作为Key,然后您可以获取Count()每个名称.