根据条件检查数组的多行

时间:2018-04-20 08:19:32

标签: .net arrays vb.net

我可以减少这样的事情:

If Line(1) = False _
   AND Line(1) = False _
   AND Line(2) = False _
   AND Line(3) = False _
   AND Line(4) = False _
   AND Line(5) = False _
   AND Line(6) = False _
   AND Line(7) = False _
   AND Line(8) = False _
   AND Line(9) = False Then

对于这样的事情:

If Line(1-9) = False Then

若然,怎么样?

2 个答案:

答案 0 :(得分:4)

您可以使用LINQ。假设LineList(Of Boolean),您可以使用LINQ的All()函数根据条件检查数组的所有项:

If Line.All(Function(x) x = False) Then

如果您只想检查前9项,请先使用Take功能:

If Line.Take(9).All(Function(x) x = False) Then

如果您想检查列表中间的某些项目(而不是列表的开头),请使用Skip函数firs,然后使用Take函数:

If Line.Skip(3).Take(9).All(Function(x) x = False) Then

答案 1 :(得分:0)

或者使用Array方法TrueForAll: -

Dim BooleanArray() As Boolean = {False, False, etc... }

If Array.TrueForAll(BooleanArray, Function(fnTest) fnTest = False) Then
Debug.WriteLine("All FALSE")
End If