Плохая практика кодирования при использовании ToLower(), а не ToLowerInvariant()
Я писал свой код для поиска в базе данных, поэтому я написал этот код:
public IEnumerable<Company> SearchInCustomers(string Search)
{
return Company.Where(w =>
(w.CompanyName.ToLower().Contains(Search.ToLower())) ||
(w.City.ToLower().Contains(Search.ToLower()))).OrderBy(w => w.Id);
}
Я отлично работаю, и я подумал, что это хороший код. Когда я начал проверять свой код, например, с помощью SonarCube (это нужно для проверки вашего кода и выявления плохого кода), он сказал, что я использую .ToLower()
неправильно. Он показал мне сообщение, почему и как использовать это (если вы хотите увидеть сообщение, дайте мне знать), и дал мне ссылку.
Он сказал, что мне нужно использовать .ToLowerInvariant()
, но я никогда не слышал об этом.
Так что теперь мне интересно, это действительно плохо использовать ToLower()
и я должен использовать .ToLowerInvariant()
или просто так как всегда делал?
Редактировать:
Ввод всегда выполняется на одном языке, он используется в стране, в которой я живу, и нет способа удалить что-либо. Там нет "странного" ввода в Search
,