linq - C# linq ANY 布尔否定外部与谓词
问题描述
有一个对象具有对象的属性 ListA,每个对象内部都有一个属性 id(nullable)
ListA 中总是有两个对象
案例A
if (!mainObj.ListA.Any(object => object.id.HasValue))
{
//do
}
对比
案例B
if (mainObj.ListA.Any(object => !object.id.HasValue) )
{
//do
}
我想了解为什么当 id 为 True/False 或 False/True时,如果仅在 id 为 False/False 时输入,则案例 A不符合进入内部的语句标准。
解决方案
你在用!情况 A (!mainObj.ListA.Any(object => object.id.HasValue)) 中的条件之前,仅当两个对象都没有值时才会返回 true,因为使用了 Any。
对于案例 A,您需要使用以下方法:
if (!mainObj.ListA.All(object => object.id.HasValue))
{
//do
}
我们将Any更改为All并进入此块,此时至少有 1 个项目没有价值。
推荐阅读
- angularjs - 超过 50,000 条记录在 angularjs 的下拉列表中加载 ng-repeat
- windows - 天蓝色管道“命令行”代理作业是否从上一个作业继承工作目录?
- flutter - 有没有办法连接到安卓设备的激光扫描仪?
- python - Matplotlib ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
- python-3.x - Python '\r' 在同一行打印,但不会删除前面的文本
- google-chrome-extension - Chrome 扩展 newTab 和 amazon associates
- encryption - 如何将 30 位数字加密为 10 位数字?
- java - 在泛型类型中使用方法
- php - 在多对多上使用 LIKE 进行教义查询 - Symfony 4
- c++ - 如何遍历结构中的向量?