Плохая практика кодирования при использовании 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,

0 ответов

Другие вопросы по тегам