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?
Vous devez le faire comme ceci:
If strMyString.Contains("Something") OrElse strMyString.Contains("Something2") Then
'[Put Code Here]
End if
Tu en as besoin
If strMyString.Contains("Something") or strMyString.Contains("Something2") Then
'Code
End if
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.
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
Vous avez ("Something2")
seul - vous devez le tester pour qu'un booléen soit renvoyé:
If strMyString.Contains("Something") or strMyString.Contains("Something2") Then
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.
If strMyString.Tostring.Contains("Something") or strMyString.Tostring.Contains("Something2") Then
End if