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

Найти подстроку без учета регистра - С#

Возможный дубликат:
Нечувствительность к регистру содержит (строку)

С помощью метода Contains() класса String можно найти подстроку. Как найти подстроку в строке без учета регистра?

4b9b3361

Ответ 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() );