Подтвердить что ты не робот

VB.NET - если строка содержит значения "value1" или "value2"

Мне интересно, как я могу проверить, содержит ли строка строку "value1" или "value2"? Я пробовал это:

If strMyString.Contains("Something") Then

End if

Это работает, но это не так:

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

End if

Это дает мне ошибку, что преобразование из строки в Long невозможно. Если я помещаю or ("Something2") в круглую скобку первой, это дает мне ошибку, что строка не может быть преобразована в Boolean.

Итак, как я могу проверить, содержит ли строка "string1" или "string2", не имея необходимости писать слишком много кода?

4b9b3361

Ответ 1

Вы должны сделать это следующим образом:

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

Ответ 2

Вам нужно это

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

Ответ 3

Вот альтернативное решение для проверки того, содержит ли определенная строка некоторую предопределенную строку. Он использует 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.

Ответ 4

В дополнение к уже указанным ответам это будет быстрее, если вы используете OrElse вместо Or, потому что второй тест замыкается. Это особенно верно, если вы знаете, что одна строка более вероятна, чем другая, в этом случае это первое место:

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

Ответ 5

У вас есть ("Something2") сам по себе - вам нужно проверить его, чтобы возвращалось логическое значение:

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

Ответ 6

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

End if

Ошибка указывает на то, что компилятор считает, что вы хотите поразрядно OR на логическом и строку. Что, конечно, не сработает.

Ответ 7

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


     End if

Ответ 8

Интересно, что это решение может сломаться, но обходной путь: Поиск моей базы данных под названием KeyWorks.accdb, которая должна существовать:

Запустите это:

Dim strDataPath As String = GetSetting ( "KeyWorks", "dataPath", "01", ")" получить из реестра

Если не strDataPath.Contains( "KeyWorks.accdb" ) Затем.... и т.д.

Если моя база данных называется KeyWorksBB.accdb, оператор If найдет это приемлемым и завершит оператор if, потому что он действительно нашел KeyWorks и accdb.

Если я окружаю квалификатор if с одинарными кавычками ( "KeyWorks.accdb" ), он теперь ищет все последовательные символы в порядке и будет вводить блок If, потому что он не соответствует.