是StringComparison.Ordinal相同InvariantCulture的用于测试平等? [英] is StringComparison.Ordinal the same as InvariantCulture for testing equality?
问题描述
从他们的简要描述,这听起来像字符串比较规则 StringComparison.Ordinal
和 StringComparison.InvariantCulture
是意味着在他们做的是如何串的排序的不同。是的所有的?也就是说,这是否意味着做一个相等比较时,我们可以使用字符串比较规则?
From their brief summary descriptions, it sounds like the string comparison rules StringComparison.Ordinal
and StringComparison.InvariantCulture
are meant to differ in how they do sorting of strings. Is that all? i.e., does that mean we can use either string comparison rule when doing an equality comparison?
string.Equals(a, b, StringComparison....)
和额外信贷:它有所作为的答案,如果我们比较 OrdinalIgnoreCase
和 InvariantCultureIgnoreCase
?怎么样?
And for extra credit: does it make a difference to the answer if we compare OrdinalIgnoreCase
and InvariantCultureIgnoreCase
? How?
请提供配套参数和/或引用。
Please provide supporting argument and/or references.
推荐答案
这非常重要,例如 - 有一种东西叫做角色扩展
It does matter, for example - there is a thing called character expansion
var s1 = "Strasse";
var s2 = "Straße";
s1.Equals(s2, StringComparison.Ordinal); // false
s1.Equals(s2, StringComparison.InvariantCulture); // true
使用 InvariantCulture的
的 SS
字符被扩大到 SS
。
这篇关于是StringComparison.Ordinal相同InvariantCulture的用于测试平等?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!