it-swarm.com.de

VB.NET - Wenn die Zeichenfolge "value1" oder "value2" enthält

Ich frage mich, wie ich überprüfen kann, ob eine Zeichenfolge "value1" oder "value2"? .__ enthält. Ich habe Folgendes versucht:

If strMyString.Contains("Something") Then

End if

Das funktioniert, aber das funktioniert nicht:

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

End if

Dies gibt mir den Fehler, dass die Konvertierung von String in Long nicht durchgeführt werden kann. Wenn ich die or ("Something2") in die Klammern der ersten einstelle, wird mir der Fehler angezeigt, dass der String nicht in Boolean konvertiert werden kann.

Wie kann ich also überprüfen, ob der String entweder "string1" oder "string2" enthält, ohne zu viel Code schreiben zu müssen?

34
Kenny Bones

Du musst es so machen:

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

Du brauchst das

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

Hier ist die alternative Lösung, um zu überprüfen, ob eine bestimmte Zeichenfolge eine vordefinierte Zeichenfolge enthält. Es verwendet IndexOf Funktion:

'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

HINWEIS: Diese Lösung wurde mit Visual Studio 2010 getestet.

4
Predator

Zusätzlich zu den bereits gegebenen Antworten ist es schneller, wenn Sie OrElse anstelle von Or verwenden, da der zweite Test kurzgeschlossen ist. Dies gilt insbesondere, wenn Sie wissen, dass eine Zeichenfolge wahrscheinlicher ist als die andere. In diesem Fall sollten Sie diese zuerst platzieren:

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

Sie haben ("Something2") alleine - Sie müssen es testen, damit ein Boolean zurückgegeben wird:

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

End if

Der Fehler weist darauf hin, dass der Compiler der Meinung ist, dass Sie eine bitweise OR für einen Boolean und einen String ausführen möchten. Was natürlich nicht funktioniert.

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


     End if
0
Android