c# - 针对特定情况的 Linq 查询中的条件 Where 子句
问题描述
我有一个实体框架查询,它根据特定条件从数据库中检索结果。但是,有一个实例,我想根据 where 子句中的条件过滤结果。我认为案例陈述是我将如何实现这一目标,有人能指出我正确的方向吗?
因此,对于从 OutageList 返回的结果,对于中断类型为“实时”的情况,我只希望在 NumberOfPeopleAffected 大于 4 时将其包含在结果中。例如:
outageList.Where(o => o.FaultType == "Live" && o.NumberOfPeopleAffected > 4)
问题是,上面的代码还不够,因为我也想返回其他中断,只是对于 Live 中断的情况,我只想在受影响的人数超过 4 时返回它们。
这有意义吗?这是我需要的案例陈述吗?如果是这样,在 LINQ 中编写此代码的最佳方法是什么?
解决方案
您可以在Where()
子句中包含 OR 条件:
outageList.Where(o => (o.FaultType == "Live" && o.NumberOfPeopleAffected > 4) || o.FaultType != "Live");
推荐阅读
- powershell - PowerShell:“接收作业”如何从作业的代码块中详细提取输出?
- python - 如何在 Django 中根据属于数据库中最后一个类似对象的值为整数字段分配值时避免竞争条件?
- gnome-3 - Ubuntu 18.04 更改了加载屏幕
- android - 三星游戏优化降低了显示密度和尺寸
- c# - 为什么返回 0?
- javascript - AngularFire2 使用 Angular 6 返回“未定义”[object Object]
- python - conda create env 在 git bash、Windows 10 中不起作用
- python - 允许多个 python 文件之间的通信
- angular - 错误类型错误:this.user.setPassword 不是角度 5 中的函数?
- r - 计算 r 中频率也为零的向量中的元素