4

如何在一行中测试多个值是否相等?基本上我想做

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

但在 VB.Net 中。

4

3 回答 3

8
If val1 = valN AndAlso val2 = valN AndAlso ... Then
End If

当测试多个值时,这可能会变得很麻烦。

于 2009-03-26T16:26:12.570 回答
1

没有办法像那样将它们链接在一起。您需要将其分解为由 AndAlso 链接的成对比较

if val1 = val2 AndAlso val2 = val3 AndAlso val1 = val3 Then
于 2009-03-26T16:26:22.477 回答
1

如果你有很多值要测试并且经常这样做,你可以给你写一个这样的助手:

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
于 2009-04-02T07:08:04.367 回答