Найти подстроку без учета регистра - С#
Возможный дубликат:
Нечувствительность к регистру содержит (строку)
С помощью метода Contains()
класса String можно найти подстроку.
Как найти подстроку в строке без учета регистра?
Ответы
Ответ 1
Вы можете использовать метод IndexOf(), который принимает тип StringComparison:
string s = "foobarbaz";
int index = s.IndexOf("BAR", StringComparison.CurrentCultureIgnoreCase); // index = 3
Если строка не была найдена, IndexOf() возвращает -1.
Ответ 2
Там нет версии без учета регистра. Вместо этого используйте IndexOf
(или регулярное выражение, хотя это не рекомендуется и излишне).
string string1 = "my string";
string string2 = "string";
bool isContained = string1.IndexOf(string2, StringComparison.OrdinalIgnoreCase) >= 0;
StringComparison.OrdinalIgnoreCase
обычно используется для более "программируемого" текста, такого как пути или константы, которые вы могли сгенерировать, и является самым быстрым средством сравнения строк. Для текстовых строк, которые являются лингвистическими, используйте StringComparison.CurrentCultureIgnoreCase
или StringComparison.InvariantCultureIgnoreCase
.
Ответ 3
Содержит возвращает логическое значение, если найдено совпадение. Если вы хотите искать регистр без учета регистра, вы можете сделать исходную строку и строку совпадающими как с верхним регистром, так и с нижним регистром перед сопоставлением.
Пример:
if(sourceString.ToUpper().Contains(stringToFind.ToUpper()))
{
// string is found
}
Ответ 4
stringToSearch.ToLower().Contains(stringToSearchFor.ToLower())
Ответ 5
string myString = "someTextorMaybeNot";
myString.ToUpper().Contains( "text".ToUpper() );