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

时间:2016-07-04 15:26:55

标签: c# lambda

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

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

提前致谢。

3 个答案:

答案 0 :(得分:3)

首先放置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();

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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