查找至少有25个子记录大于0 - LAMBDA的记录

本文关键字:记录 大于 LAMBDA 25个 查找 | 更新日期: 2023-09-27 17:54:49

我试图将结果限制为仅包含至少25条loadWeight大于0的记录的结果。(在这种情况下,使用Take()的前25个是可以的)。

proxyList = proxyList
  .Where(x => x.Load.LoadDetailList
     .Take(25)
     .Where(y => y.loadWeight > 0)
  .ToList();

查找至少有25个子记录大于0 - LAMBDA的记录

Where(y => y.loadWeight > 0) 放在首位以过滤出要计数的记录;Skip 24条记录,检查目前是否有Any记录(即25条或更多记录):

proxyList = proxyList
  .Where(x => x.Load.LoadDetailList
     .Where(y => y.loadWeight > 0)
     .Skip(24) 
     .Any()) // Any: do we have 25th item?
  .ToList();
proxyList = proxyList
    .Where(x => x.Load.LoadDetailList
        .Where(y => y.loadWeight > 0)
        .Count() > 25)
    .ToList();

您的Where函数接受一个谓词,因此您需要返回一个布尔值。您要检查符合条件的记录计数是否超过25条。

proxyList.Where(x => x.Load.LoadDetailTest.Count(y => y.LoadWeight > 0) > 25));