web-dev-qa-db-fra.com

VB.NET - Si la chaîne contient "valeur1" ou "valeur2"

Je me demande comment je peux vérifier si une chaîne contient "valeur1" ou "valeur2"? J'ai essayé ceci:

If strMyString.Contains("Something") Then

End if

Cela fonctionne, mais cela ne fonctionne pas:

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

End if

Cela me donne l’erreur que la conversion de chaîne en Long ne peut pas être faite . Si je mets le _or ("Something2") entre les parenthèses du premier, cela me donne l’erreur que la chaîne ne peut pas être convertie en Boolean.

Alors, comment puis-je vérifier si la chaîne contient "string1" ou "string2" sans avoir à écrire trop de code?

34
Kenny Bones

Vous devez le faire comme ceci:

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

Tu en as besoin

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

Voici la solution alternative pour vérifier si une chaîne particulière contient une chaîne prédéfinie. Il utilise IndexOf Fonction:

'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

REMARQUE: Cette solution a été testée avec Visual Studio 2010.

4
Predator

En plus des réponses déjà données, ce sera plus rapide si vous utilisez OrElse au lieu de Or car le deuxième test est court-circuité. Cela est particulièrement vrai si vous savez qu'une chaîne est plus probable que l'autre, auquel cas placez ceci en premier:

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

Vous avez ("Something2") seul - vous devez le tester pour qu'un booléen soit renvoyé:

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

End if

L'erreur indique que le compilateur pense que vous souhaitez effectuer OR au niveau du bit sur un booléen et une chaîne. Ce qui ne fonctionnera bien sûr pas.

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


     End if
0
Android