如何在LINQ中执行group by并获取Iqueryable或Custom Class对象?

Vis*_*hal 4 c# linq asp.net group-by

这是我的查询 -

var data = Goaldata.GroupBy(c => c.GoalId).ToList();
Run Code Online (Sandbox Code Playgroud)

这将返回一个Igrouping对象,我想要一个Iqueryable对象,我可以直接查询以获取数据,而在这种情况下,我必须使用foreach()循环,然后获取数据.是否有另一种在LINQ中分组的方法,它直接作为Iqueryable或List的列表返回,类似于LINQ中的顺序.

Ste*_*han 9

最简单的方法可能就是

var data = Goaldata.GroupBy(c => c.GoalId).SelectMany(c => c).ToList();
Run Code Online (Sandbox Code Playgroud)

在OO意义上,它们并没有真正分组,但它们与各组一起订购.


Mar*_*ers 5

虽然接受的答案是正确的,但似乎不必要地复杂化.假设GoalId是int你可以使用OrderBy:

var data = Goaldata.OrderBy(c => c.GoalId).ToList();
Run Code Online (Sandbox Code Playgroud)