看起来这应该又快又容易,但我找不到实现它的语法,也没有任何成功的搜索。
我编写了一个程序,该程序从一个帐户中获取 3 个用户 ID,从另一个帐户中获取 3 个用户 ID,以比较帐户的所有权并允许某些权限,具体取决于所有权重叠。如果用户 ID 为空,则将“0”作为 UserID 的值,以避免字符串到长的转换问题。
按照目前写的,我测试了当UserID1匹配2UserID1,没有其他用户,程序正常运行。我还测试了 userID1 和 userID2 何时匹配 2userID1 和 2userID2,没有第三个用户,但它工作不正确。我有一种感觉 xxx = (yyy or zzz or uuu) 只看 yyy 而不会碰到其他值。有没有办法让 user1 将其值与 3 个不同的 2userIDx 值进行比较,而无需编写一系列 or 语句?我希望用下面的内容来简化代码。
Dim userID1 As String = dr.GetString(1).Replace("-", "")
Dim userID2 As String = dr.GetString(2).Replace("-", "")
Dim userID3 As String = dr.GetString(3).Replace("-", "")
Dim Account2 As String = dr.GetString(4)
Dim 2userID1 As String = dr.GetString(5).Replace("-", "")
Dim 2userID2 As String = dr.GetString(6).Replace("-", "")
Dim 2userID3 As String = dr.GetString(7).Replace("-", "")
If userID1 = (2userID1 Or 2userID2 Or 2userID3) And userID2 = (2userID1 Or 2userID2 Or 2userID3) And userID3 = (2userID1 Or 2userID2 Or 2userID3)) Then
MessageBox.Show(fullACN.ToString + " and " + crACN.ToString + " can be crossed.")
ElseIf (userID1 = (2userID1 Or 2userID2 Or 2userID3) And userID2 = (2userID1 Or 2userID2 Or 2userID3) And userID3 = "0") Then
MessageBox.Show(fullACN.ToString + " and " + crACN.ToString + " can be crossed.")
ElseIf (userID1 = (2userID1 Or 2userID2 Or 2userID3) And userID2 = "0" And userID3 = "0") Then
MessageBox.Show(fullACN.ToString + " and " + crACN.ToString + " can be crossed.")
Else
MessageBox.Show(fullACN.ToString + " and " + crACN.ToString + " cannot be crossed.")
End If
End If