Просто используйте IndexOf на две строки, а затем использовать, если выражение
Dim pos1 = String1.IndexOf("something")
Dim pos2 = String2.IndexOf("something else")
if pos1 < 0 AndAlso pos2 < 0 then
' the string1 doesn't contain "something" and string2 doesn't contain "something else"
End If
String.indexOf возвращает символьная позиция строки, переданная в качестве аргумента. Если аргумент не найден в исходной строке, возвращается -1, как описано в MSDN docs
IndexOf также может быть полезна, если ваш поисковый запрос содержит символы в другом случае, кроме строки ввода.
Например, если ваш текст ввода содержит слово «Something» (Uppercase 'S'), которое ищет этот вход, используя термин «что-то», произойдет сбой при использовании Contains или vanilla IndexOf. Но с IndexOf вы могли бы написать что-то вроде этого
Dim pos1 = String1.IndexOf("something", StringComparison.CurrentCultureIgnoreCase)
Dim pos2 = String2.IndexOf("something else", StringComparison.CurrentCultureIgnoreCase)
Это заставит IndexOf относиться к «что-то» и «нечто», как они одни и те же строки.
Наконец, ваш вопрос неясно, хотите ли вы проверить недостающий текст только на вторую строку или обе строки, но зная, что IndexOf возвращает> = 0, если искомая строка существует, должно быть довольно просто изменить if чтобы удовлетворить ваши потребности.
Что значит, не работает? Вы предполагаете, что существует проблема с реализацией 'String.Contains' или' Not'? Что такое значение 'String2', я подозреваю, что у вас есть разница в случае. – Jodrell
Вы намеренно опускаете 'Не' от первого вызова' Contains() '? – Panzercrisis
Также, если задействованы новые строки, вы можете столкнуться с проблемой с 'LF' и' CRLF' (или 'LFCR'). – Panzercrisis