我有以下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)

要对组进行排序-假设不必将计数保留为单独的属性,则可以将项目投影到IEnumerableIEnumerable<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/

10-09 20:05