文字列に「value1」または「value2」が含まれているかどうかを確認するにはどうすればよいですか?私はこれを試しました:
If strMyString.Contains("Something") Then
End if
これは機能しますが、機能しません。
If strMyString.Contains("Something") or ("Something2") Then
End if
これにより、文字列からLongへの変換を実行できないというエラーが発生します。 or ("Something2")
を最初の括弧の内側に入れると、文字列をブールに変換できないというエラーが表示されます。
それでは、あまり多くのコードを書くことなく、文字列に「string1」または「string2」が含まれているかどうかをどのように確認できますか?
次のようにしなければなりません:
If strMyString.Contains("Something") OrElse strMyString.Contains("Something2") Then
'[Put Code Here]
End if
あなたにはこれが必要です
If strMyString.Contains("Something") or strMyString.Contains("Something2") Then
'Code
End if
特定の文字列に定義済みの文字列が含まれているかどうかを確認する代替ソリューションを次に示します。 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でテストされています。
既に与えられた答えに加えて、OrElse
の代わりにOr
を使用すると、2番目のテストが短絡するため、より速くなります。これは、1つの文字列が他の文字列よりも高い可能性があることがわかっている場合に特に当てはまります。
If strMyString.Contains("Most Likely To Find") OrElse strMyString.Contains("Less Likely to Find") Then
'Code
End if
("Something2")
を単独で持っています-ブール値が返されるようにテストする必要があります:
If strMyString.Contains("Something") or strMyString.Contains("Something2") Then
If strMyString.Contains("Something") or strMyString.Contains("Something2") Then
End if
このエラーは、ブール値と文字列に対してビット単位のOR
を実行したいとコンパイラが判断したことを示しています。もちろん、これは機能しません。
If strMyString.Tostring.Contains("Something") or strMyString.Tostring.Contains("Something2") Then
End if