我从我的TL得到了一个提示,我不应该只使用string.compare,因为我正在使用程序化字符串。他究竟想说什么?我们有关于弦乐的文化信息吗?使用stringComparision.Ordinal有什么好处?
答案 0 :(得分:2)
如果未指定任何比较选项,String.Compare
方法将默认使用当前区域性设置进行与文化相关的比较。这意味着使用特定文化的排序顺序比较字符。
如果指定Ordinal
比较,则仅根据Unicode字符代码比较字符。
使用序数比较的一个好处是它更快。如果您要进行大量比较,这很重要。
比较结果不同的示例:
Console.WriteLine(String.Compare("å", "ä"));
Console.WriteLine(String.Compare("å", "ä", StringComparison.Ordinal));
输出:
-1
1
答案 1 :(得分:1)
字符串比较将使用当前文化,即操作系统具有的文化(如果转到Windows中的“区域”设置,则可以更改它)
这是来自msdn:
比较使用当前的文化来获得特定文化 套管规则和字母顺序等信息 个人角色
如果您不希望文化成为问题,您可以随时指定比较:
String.Compare("a", "a", StringComparison.InvariantCulture);