考虑一下这个集合
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
怎么样
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()每个名称.