Ordinal и культурное сравнение строк
Вопрос
Чем StringComparison.Ordinal отличается от CurrentCulture?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Ответ
Ordinal: побайтовое сравнение кодов char, быстро и предсказуемо. Для идентификаторов, путей, ключей, протоколов.
CurrentCulture / InvariantCulture: лингвистическое сравнение по правилам языка (ё и е, лигатуры, порядок букв). Для сортировки текста, который видит пользователь.
IgnoreCase-варианты есть у обоих.
Разбор
Начиная с .NET 5 на всех ОС культурное сравнение идёт через ICU, поэтому некоторые старые сравнения дали другие результаты. Это ещё один довод за явный StringComparison.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.