如何在一行中测试多个值是否相等?
基本上我想要做的是
但是在VB.Net中。
if (val1 == val2 == val3 == ... valN)
但是在VB.Net中。
if (val1 == val2 == val3 == ... valN)
If val1 = valN AndAlso val2 = valN AndAlso ... Then
End If
当测试的值超过几个时,这会变得繁琐。
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
无法像那样将它们链接在一起。您需要将其拆分为由AndAlso链接的成对比较。
if val1 = val2 AndAlso val2 = val3 AndAlso val1 = val3 Then