Чтобы проверить, содержит ли строка paragraph
строку word
(спасибо @QuarterMeister)
culture.CompareInfo.IndexOf(paragraph, word, CompareOptions.IgnoreCase) >= 0
Где culture
- это экземпляр CultureInfo
, описывающий язык, на котором написан текст.
Это решение прозрачно для определения нечувствительности к регистру, которое зависит от языка . Например, английский язык использует символы I
и i
для прописных и строчных букв девятой буквы, тогда как турецкий язык использует эти символы для одиннадцатой и двенадцатой букв своих 29 буквенный алфавит. Турецкая версия «i» в верхнем регистре - это незнакомый символ «İ».
Таким образом, строки tin
и TIN
- это одно и то же слово в английском , но разные слова в турецком . Как я понимаю, один означает «дух», а другой - слово звукоподражания. (Турки, поправьте меня, если я ошибаюсь, или предложите лучший пример)
Подводя итог, вы можете ответить только на вопрос «являются ли эти две строки одинаковыми, но в разных случаях» , если вы знаете, на каком языке находится текст . Если вы не знаете, вам придется взять с собой пунт. Учитывая гегемонию английского языка в программном обеспечении, вам, вероятно, следует прибегнуть к CultureInfo.InvariantCulture
, потому что это будет неправильно знакомыми способами.