VB.Net: проверить множественные значения на равенство? - PullRequest
4 голосов
/ 26 марта 2009

Как проверить несколько значений на равенство в одной строке? В основном я хочу сделать

if (val1 == val2 == val3 == ... valN)

но в VB.Net.

Ответы [ 3 ]

8 голосов
/ 26 марта 2009
If val1 = valN AndAlso val2 = valN AndAlso ... Then
End If

Это может стать громоздким при тестировании нескольких значений.

2 голосов
/ 02 апреля 2009

Если у вас есть много значений для тестирования и вы делаете это очень часто, вы можете написать вам помощника, например:

Public Function AllTheSame(ByVal ParamArray values() As Object) As Boolean
    For index As Integer = 1 To values.Length - 1
        If values(0) <> values(index) Then Return False
    Next
    Return True
End Function

<Fact()> Public Sub testAllTheSame()
    Assert.True(AllTheSame("Test"))
    Assert.True(AllTheSame("Test", "Test"))
    Assert.True(AllTheSame("Test", "Test", "Test"))

    Assert.True(AllTheSame(1234))
    Assert.True(AllTheSame(1234, 1234, 1234))

    Assert.False(AllTheSame("Test", "Test2"))
    Assert.False(AllTheSame("Test", "Test", "Test3"))

    Assert.False(AllTheSame(1234, 1234, 987))
End Sub
1 голос
/ 26 марта 2009

Нет способа соединить их вместе таким образом. Вам нужно разбить его на парные сравнения, связанные AndAlso

if val1 = val2 AndAlso val2 = val3 AndAlso val1 = val3 Then
...