首页 > 解决方案 > 如何在 LINQ 中使用组

问题描述

我从 LinQ Query 得到一个列表,我想检查SuiteId每个 Count = 3 的计数,然后返回我该suiteId如何解决?

   var a = _context.SuiteReserveAvailables.Where(c =>
                    c.AvailableDate <= DtpEnd.SelectedDateTime &&
                    c.AvailableDate >= DtpStart.SelectedDateTime &&
                    c.ReserveStatus == false && c.IsDeleted == false && c.IsActive)
                    .Select(c => c.SuiteId).ToList();

例如:结果是 {1,1,1,3,3,2,5,5,5,5} 所以我只需要1数字,因为在我的列表中重复了 3 次

标签: c#linq

解决方案


var a = _context.SuiteReserveAvailables.Where(c =>
                    c.AvailableDate <= DtpEnd.SelectedDateTime &&
                    c.AvailableDate >= DtpStart.SelectedDateTime &&
                    c.ReserveStatus == false && c.IsDeleted == false && c.IsActive)
                    .GroupBy(c => c.SuiteId)
                    .Where(gr => gr.Count() == 3)
                    .Select(gr => gr.Key)
                    .ToList();

那应该这样做。


推荐阅读