Связь между StringComparer.OrdinalignoreCase и StringComparer.InvariantCultureIgnoreCase
Я пытаюсь получить связь между результатами сравнения строк при использовании StringComparer.OrdinalignoreCase
а также StringComparer.InvariantCultureIgnoreCase
, Точнее, я хотел бы знать, какое из следующих четырех утверждений верно:
a == b using StringComparer.OrdinalIgnoreCase
, затемa == b using StringComparer.InvariantCultureIgnoreCase
a != b using StringComparer.OrdinalIgnoreCase
, затемa != b using StringComparer.InvariantCultureIgnoreCase
a == b using StringComparer.InvariantCultureIgnoreCase
, затемa == b using StringComparer.OrdinalIgnoreCase
a != b using StringComparer.InvariantCultureIgnoreCase
, затемa != b using StringComparer.OrdinalIgnoreCase
До сих пор я знаю, что утверждение № 3 не соответствует действительности на примере a = STRASSE
а также b = Straße
из комментария в этом вопросе.
В идеале я хотел бы получить объяснение, почему утверждение является истинным, или пример, когда оно не соответствует действительности.
1 ответ
Разница между порядковым и инвариантным сопоставлением - это различие между нелингвистическим и лингвистическим сопоставлением.
В теории 1 должно быть истинно (это если вы не игнорируете регистр), но правила использования регистров отличаются, когда вы используете неязыковый и лингвистический регистры. Остальные ложные.