Связь между StringComparer.OrdinalignoreCase и StringComparer.InvariantCultureIgnoreCase

Я пытаюсь получить связь между результатами сравнения строк при использовании StringComparer.OrdinalignoreCase а также StringComparer.InvariantCultureIgnoreCase, Точнее, я хотел бы знать, какое из следующих четырех утверждений верно:

  1. a == b using StringComparer.OrdinalIgnoreCase, затем a == b using StringComparer.InvariantCultureIgnoreCase
  2. a != b using StringComparer.OrdinalIgnoreCase, затем a != b using StringComparer.InvariantCultureIgnoreCase
  3. a == b using StringComparer.InvariantCultureIgnoreCase, затем a == b using StringComparer.OrdinalIgnoreCase
  4. a != b using StringComparer.InvariantCultureIgnoreCase, затем a != b using StringComparer.OrdinalIgnoreCase

До сих пор я знаю, что утверждение № 3 не соответствует действительности на примере a = STRASSE а также b = Straße из комментария в этом вопросе.

В идеале я хотел бы получить объяснение, почему утверждение является истинным, или пример, когда оно не соответствует действительности.

1 ответ

Разница между порядковым и инвариантным сопоставлением - это различие между нелингвистическим и лингвистическим сопоставлением.

В теории 1 должно быть истинно (это если вы не игнорируете регистр), но правила использования регистров отличаются, когда вы используете неязыковый и лингвистический регистры. Остальные ложные.

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