TL; DR:
При работе с «контентом» (например, статьями, публикациями, комментариями, именами, местами и т. Д.) Используйте ToLower()
.При работе с «литералами» (например, аргументы командной строки, пользовательские грамматики, строки, которые должны быть перечислениями и т. Д.) Используйте ToLowerInvariant()
.
Примеры:
= Использование ToLowerInvariant
неправильно =
В турецком языке DIŞ
означает «снаружи», а diş
означает «зуб».Правильный нижний кожух DIŞ
равен dış
.Таким образом, если вы используете ToLowerInvariant
неправильно, вы можете иметь опечатки в Турции.
= Использование ToLower
некорректно =
Теперь представьте, что вы пишете синтаксический анализатор SQL.Где-то у вас будет код, похожий на:
if(operator.ToLower() == "like")
{
// Handle an SQL LIKE operator
}
Грамматика SQL не меняется при изменении культур.Француз не пишет SÉLECTIONNEZ x DE books
вместо SELECT X FROM books
.Однако для того, чтобы вышеприведенный код работал, турецкому человеку нужно было бы написать SELECT x FROM books WHERE Author LİKE '%Adams%'
(обратите внимание на точку над прописной буквой i, которую почти невозможно увидеть).Это было бы довольно сложно для вашего турецкого пользователя.