我的数据看起来像:
A | B
80 | 80
90 | 10
80 | NULL
我用计算B的所有非零值
.C = eGroup.Count(Function(x) x.IsBNull = False)
但我的表达式中需要另一个条件,因为我只想计算A是否>=B。
我试过
.C = eGroup.Count(Function(x) x.IsBNull = False And x.A >= x.B)
但是一旦B为空,我就会得到一个错误。
编辑:我从数据集中获取数据我有一个字段"Teams",在使用上面的查询之前,按团队对数据集进行分组:
dim query=来自_dataset.DS中的行逐行分组。Team Into eGroup=Group
使用AndAlso
而不是And
,后者总是同时计算第二个条件,即使第一个条件已经是False
。阅读:在VB.NET中And和AndAlso之间有什么区别?
.C = eGroup.Count(Function(x) x.IsBNull = False AndAlso x.A >= x.B)
顺便说一句,这同样适用于Or
和OrElse
。在VB.NET开发的12年里,我几乎从未使用过And
或Or
。