GroupBy并在单个查询中选择

时间:2017-08-09 23:14:47

标签: c# entity-framework

使用lambda表达式,如何将实体分组并仅选择实体的属性到该组列表中?

例如:

我希望按StudentsName进行分组,并选择他们的ID。因此,结果将是List<List<int>>

执行Students.GroupBy(s=>s.Name).Select(s=>s.ID).ToList()不起作用?

我可以分两个阶段完成,但我想向数据库发送一个查询。

1 个答案:

答案 0 :(得分:2)

当您对某些内容进行分组时,结果为IEnumerable<IGrouping>,其中IGrouping实际上只是IEnumerable属性Key。因此,您必须从每个分组中选择Id并将其转换为列表。

Students.GroupBy(s=>s.Name).Select(group => group.Select(s => s.ID).ToList()).ToList()