读完后我仍然很困惑:
string s1 = "hello";
string s2 = "héllo";
这里的不同之处在于口音/文化。
以下代码的结果是False
.
Console.WriteLine(s1.Equals(s2, StringComparison.InvariantCulture));
但是我使用不变的文化,所以它应该把 é 当作 e。(默认是英文,不是吗?)
看来我必须一路走才能使用
String.Compare(String, String, CultureInfo, CompareOptions)
喜欢
string.Compare(s1, s2, CultureInfo.CurrentCulture, CompareOptions.IgnoreNonSpace) //true
但是,我目前的文化是he-IL
,所以我不知道它为什么会起作用。
所以 :
虽然我使用过,但我不明白什么时候
CompareOptions
不起作用StringComparison.InvariantCulture
(请不要将我引用到 msdn 页面,因为我已经阅读过它并且我不完全理解他们的解释)简单来说,我应该什么时候使用每个重载?
非间距组合字符不是一种文化吗?