TGViewer
C# Development | YeaHub C# Development | YeaHub @yeahub_c_sharp_dev · 743 subscribers
Post #270 507
#полезное
😊 Не совершайте эту ошибку

Не используйте .ToLower() для сравнения строк. Почему?

Метод .ToLower() создаёт новую строку в памяти для каждого сравнения, что приводит к лишним аллокациям.

Представьте метод, который вызывается очень часто — это может деградировать производительность приложения.

Кроме того, .ToLower() чувствителен к культуре, то есть результат может различаться в зависимости от текущей культуры, установленной в исполняющем потоке.

Что использовать вместо этого?

В .NET есть мощное перечисление — StringComparison.

Возможные варианты StringComparison:

- Ordinal — используйте в большинстве случаев, когда культурные правила не важны. Самый быстрый вариант.
- OrdinalIgnoreCase — для сравнений без учёта регистра, где культурные правила не имеют значения.
- CurrentCulture и CurrentCultureIgnoreCase — используйте при сравнении строк, отображаемых пользователю, так как они учитывают культурные правила.
- InvariantCulture и InvariantCultureIgnoreCase — подходят, когда нужна единообразная логика вне зависимости от культуры, например, при сохранении и извлечении данных.

> EF Core выбросит исключение, если использовать методы вроде
> String.Equals(string, StringComparison), так как они не транслируются в SQL.

Это не будет работать с EF.
Если вы используете SQL Server с коллацией по умолчанию, сравнение строк уже нечувствительно к регистру, поэтому обычное a == b или string.Equals(a, b) в LINQ будет работать.

👉Новости 👉База вопросов
  • 👍 3
  • ❤ 1
More from @yeahub_c_sharp_dev
  1. Oct 9, 2026#article #indiegames #opensource #sdl3 📚 Как делать видеоигры в 2025 году (без движка) Ав…
  2. Oct 8, 2026#Собес #database #primary_key #foreign_key 🤔 Что такое первичный (PRIMARY KEY) и внешний…
  3. Oct 7, 2026#Собес #microservices #architecture 🤔 Какими свойствами должен обладать хороший микросерв…
  4. Oct 5, 2026#Собес #Jeffrey_Richter #CLR_via_C# #.NET 🤔 Кто такой Джеффри Рихтер? 💬 Кратко: Джеффри…
  5. Oct 2, 2026#repository #кибербезопасность 📚 Структурированный 90-дневный план обучения кибербезопасн…
  6. Oct 1, 2026#Собес #WebSocket #Server-Sent_Events #SSE 🤔 Чем WebSocket отличается от SSE (Server-Sent…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →