Подтвердить что ты не робот

Параметры перечисления StringComparison

Я смущен параметрами Перечисление StringComparison Enumeration. Я просто хочу сравнить две строки, игнорируя случай. Может ли кто-нибудь объяснить, что означает текущая культура, инвариантная культура и порядковый номер? Есть ли вариант, общий для большинства случаев использования, и если да, то при каких обстоятельствах нужны другие варианты?

Для справки, параметры перечисления StringComparison следующие:

  • CurrentCulture
  • CurrentCultureIgnoreCase
  • InvariantCulture
  • InvariantCultureIgnoreCase
  • Порядковый
  • OrdinalIgnoreCase
4b9b3361

Ответ 1

Если вы сравниваете две строки для равенства, то настройки культуры не имеют большого значения (хотя это влияет, например, на турецкий, у которого есть пунктирные и незаметные i).

Если вы сортируете список строк, там большая разница; разные культуры часто сортируются в разных порядках.

CurrentCulture сортирует строки в соответствии с, erm, текущей культурой (т.е. текущей локалью). Таким образом, это изменяется в зависимости от того, где выполняется ваше программное обеспечение.

InvariantCulture - это в основном настройки английского языка в США. Он неизменен, потому что он одинаковый везде, где работает ваше программное обеспечение.

Порядковые сравнения основаны на значениях кодовых точек Юникода. Это, как правило, лучший выбор для сравнения равенства, но не хороший выбор, если вы сортируете список строк для отображения пользователю.