Ответ 1
Вы должны сделать это следующим образом:
If strMyString.Contains("Something") OrElse strMyString.Contains("Something2") Then
'[Put Code Here]
End if
Мне интересно, как я могу проверить, содержит ли строка строку "value1" или "value2"? Я пробовал это:
If strMyString.Contains("Something") Then
End if
Это работает, но это не так:
If strMyString.Contains("Something") or ("Something2") Then
End if
Это дает мне ошибку, что преобразование из строки в Long невозможно.
Если я помещаю or ("Something2")
в круглую скобку первой, это дает мне ошибку, что строка не может быть преобразована в Boolean.
Итак, как я могу проверить, содержит ли строка "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
, потому что второй тест замыкается. Это особенно верно, если вы знаете, что одна строка более вероятна, чем другая, в этом случае это первое место:
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
Интересно, что это решение может сломаться, но обходной путь: Поиск моей базы данных под названием KeyWorks.accdb, которая должна существовать:
Запустите это:
Dim strDataPath As String = GetSetting ( "KeyWorks", "dataPath", "01", ")" получить из реестра
Если не strDataPath.Contains( "KeyWorks.accdb" ) Затем.... и т.д.
Если моя база данных называется KeyWorksBB.accdb, оператор If найдет это приемлемым и завершит оператор if, потому что он действительно нашел KeyWorks и accdb.
Если я окружаю квалификатор if с одинарными кавычками ( "KeyWorks.accdb" ), он теперь ищет все последовательные символы в порядке и будет вводить блок If, потому что он не соответствует.