VB.NET - 如果string包含"value1"或"value2"

Ken*_*nes 36 vb.net string if-statement contains

我想知道如何检查字符串是否包含"value1"或"value2"?我试过这个:

If strMyString.Contains("Something") Then

End if
Run Code Online (Sandbox Code Playgroud)

这有效,但这不是:

If strMyString.Contains("Something") or ("Something2") Then

End if
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误,即从字符串到Long的转换无法完成.如果我把or ("Something2")第一个的括号内,它给我一个错误,该字符串不能转换为布尔值.

那么如何检查字符串是否包含"string1"或"string2"而无需编写太多代码?

Rif*_*fky 70

你必须这样做:

If strMyString.Contains("Something") OrElse strMyString.Contains("Something2") Then
    '[Put Code Here]
End if
Run Code Online (Sandbox Code Playgroud)

  • 我建议使用Or,OrElse的短路版本. (9认同)

Ash*_*nko 11

你需要这个

If strMyString.Contains("Something") or strMyString.Contains("Something2") Then
    'Code
End if
Run Code Online (Sandbox Code Playgroud)


Mat*_*lko 6

除了已经给出的答案之外,如果您使用OrElse而不是Or因为第二个测试短路,它会更快。如果您知道一个字符串比另一个字符串更有可能,则尤其如此,在这种情况下将其放在首位:

If strMyString.Contains("Most Likely To Find") OrElse strMyString.Contains("Less Likely to Find") Then
    'Code
End if
Run Code Online (Sandbox Code Playgroud)


Pre*_*tor 6

这是检查特定字符串是否包含某些预定义字符串的替代解决方案。它使用IndexOf功能:

'this is your string
Dim strMyString As String = "aaSomethingbb"

'if your string contains these strings
Dim TargetString1 As String = "Something"
Dim TargetString2 As String = "Something2"

If strMyString.IndexOf(TargetString1) <> -1 Or strMyString.IndexOf(TargetString2) <> -1 Then

End If
Run Code Online (Sandbox Code Playgroud)

注意:此解决方案已经过 Visual Studio 2010 测试。