我的数据如下:
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为NULL,我就会收到错误。
编辑: 我从数据集中获取数据 我有一个领域" Teams"并按团队分组我的数据集,因为我使用上面的查询:
dim query =来自_dataset.DS中的行 逐行分组。团队进入eGroup = Group
答案 0 :(得分:3)
使用AndAlso
代替And
,后者始终也会评估第二个条件,即使第一个条件已经False
。阅读:What is the difference between And and AndAlso in VB.NET?
.C = eGroup.Count(Function(x) x.IsBNull = False AndAlso x.A >= x.B)
另外,同样适用于Or
和OrElse
。在VB.NET开发的12年里,我几乎没有使用And
或Or
。