我有以下linq表达式,从数据库中提取所有数据:
var items = response.Select(a => a.SessionLocationID).ToArray();
mdl = _meetingRepository.Select<SessionLocation>()
.OrderBy(a => a.SessionDT).ThenBy(a => a.SessionEndTime);
现在,我要按字段ActualRoom分组,并且仅按ActualRoom计数> 3的分组
那可能吗?
最佳答案
您可以使用GroupBy
,但要记住,您将丢失已经做过的排序,因此在进行排序之前,我会先开始:
var groups = _meetingRepository.Select<SessionLocation>()
.GroupBy(x => x.ActualRoom)
.Where(g => g.Count() > 3)
要对组进行排序-假设不必将计数保留为单独的属性,则可以将项目投影到
IEnumerable
的IEnumerable<SessionLocation>
:var groups = _meetingRepository.Select<SessionLocation>()
.GroupBy(x => x.ActualRoom)
.Where(g => g.Count() > 3)
.Select(g => g.OrderBy(x => x.SessionDT).ThenBy(x => x.SessionEndTime));
关于linq - Linq Group通过过滤器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9827315/