web-dev-qa-db-ja.com

VB.NET-文字列に「value1」または「value2」が含まれる場合

文字列に「value1」または「value2」が含まれているかどうかを確認するにはどうすればよいですか?私はこれを試しました:

If strMyString.Contains("Something") Then

End if

これは機能しますが、機能しません。

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

End if

これにより、文字列からLongへの変換を実行できないというエラーが発生します。 or ("Something2")を最初の括弧の内側に入れると、文字列をブールに変換できないというエラーが表示されます。

それでは、あまり多くのコードを書くことなく、文字列に「string1」または「string2」が含まれているかどうかをどのように確認できますか?

35
Kenny Bones

次のようにしなければなりません:

If strMyString.Contains("Something") OrElse strMyString.Contains("Something2") Then
    '[Put Code Here]
End if
69
Rifky

あなたにはこれが必要です

If strMyString.Contains("Something") or strMyString.Contains("Something2") Then
    'Code
End if
11
Ash Burlaczenko

特定の文字列に定義済みの文字列が含まれているかどうかを確認する代替ソリューションを次に示します。 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

注:このソリューションはVisual Studio 2010でテストされています。

4
Predator

既に与えられた答えに加えて、OrElseの代わりにOrを使用すると、2番目のテストが短絡するため、より速くなります。これは、1つの文字列が他の文字列よりも高い可能性があることがわかっている場合に特に当てはまります。

If strMyString.Contains("Most Likely To Find") OrElse strMyString.Contains("Less Likely to Find") Then
    'Code
End if
4
Matt Wilko

("Something2")を単独で持っています-ブール値が返されるようにテストする必要があります:

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

End if

このエラーは、ブール値と文字列に対してビット単位のORを実行したいとコンパイラが判断したことを示しています。もちろん、これは機能しません。

0
agent-j
 If strMyString.Tostring.Contains("Something") or strMyString.Tostring.Contains("Something2") Then


     End if
0
Android