我试图将结果限制为仅包含至少25条loadWeight大于零的记录的结果。 (在这种情况下,使用Take()的第一个25是可以的)。查找至少有25个子记录大于0的记录 - LAMBDA
proxyList = proxyList
.Where(x => x.Load.LoadDetailList
.Take(25)
.Where(y => y.loadWeight > 0)
.ToList();
在此先感谢。
我试图将结果限制为仅包含至少25条loadWeight大于零的记录的结果。 (在这种情况下,使用Take()的第一个25是可以的)。查找至少有25个子记录大于0的记录 - LAMBDA
proxyList = proxyList
.Where(x => x.Load.LoadDetailList
.Take(25)
.Where(y => y.loadWeight > 0)
.ToList();
在此先感谢。
将Where(y => y.loadWeight > 0)
第一过滤掉的记录数; Skip
24条记录,并检查是否有是Any
记录至今(即或更多记录):
proxyList = proxyList
.Where(x => x.Load.LoadDetailList
.Where(y => y.loadWeight > 0)
.Skip(24)
.Any()) // Any: do we have 25th item?
.ToList();
您的Where
函数需要一个谓词,所以您需要返回一个布尔值。你要检查的符合条件的记录数超过25
proxyList.Where(x => x.Load.LoadDetailTest.Count(y => y.LoadWeight > 0) > 25));
proxyList = proxyList
.Where(x => x.Load.LoadDetailList
.Where(y => y.loadWeight > 0)
.Count() > 25)
.ToList();
你的解决方案是正确的(但可能它应该是'.Count()> = 25'),但可能*效率低下:如果Count()返回123456789? –
非常感谢。在这种情况下,最大记录数不会超过50。 – Quent
作为*正确*您的解决方案可能是低效* *:如果什么'计数(Y = > y.LoadWeight> 0)'returns'10000000'? –