使用 LINQ 筛选出不需要的对象
本文关键字:对象 不需要 LINQ 筛选 使用 | 更新日期: 2023-09-27 18:37:00
我用这种方法编写了这个 linq 查询,这样我就可以过滤掉舰队中没有链接模块(存储、生命支持、医疗舱等)的任何船只。
如果提供的队列有任何带有链接模块的船舶,则返回 true
public bool FleetWithShipsWithLinkedModules(Fleet fleet)
{
var linkedModules = fleet.Ships.Any(
s => s != null &&
s.Parts != null &&
s.Parts.LinkedModules != null);
return linkedModules;
}
用法:
if (FleetWithShipsWithLinkedModules(fleet))
{
...do stuff
}
在数据库中,零件链接到船舶,而不是舰队。它去 舰队> 船舶>零件
它大约 50% 的时间有效,我不知道为什么。 我不确定是linq还是别的什么。
我希望有人可以看看linq查询,并让我知道它在结构和语法上是否看起来不错。
谢谢!
您正在检查集合为 null,而您应该检查它们是否为空:
var linkedModules = fleet.Ships
.Any(s => s.Parts
.Any(p => p.LinkedModules.Any());