使用lambda表达式,如何将实体分组并仅选择实体的属性到该组列表中?
例如:
我希望按Students
对Name
进行分组,并选择他们的ID
。因此,结果将是List<List<int>>
。
执行Students.GroupBy(s=>s.Name).Select(s=>s.ID).ToList()
不起作用?
我可以分两个阶段完成,但我想向数据库发送一个查询。
答案 0 :(得分:2)
当您对某些内容进行分组时,结果为IEnumerable<IGrouping>
,其中IGrouping
实际上只是IEnumerable
属性Key
。因此,您必须从每个分组中选择Id
并将其转换为列表。
Students.GroupBy(s=>s.Name).Select(group => group.Select(s => s.ID).ToList()).ToList()