Compare 有多个重载函数,列出最简单的一个。
public static int Compare (string strA, string strB)
返回值
* 小于零,strA 小于 strB;
* 零,strA 等于 strB;
* 大于零,strA 大于 strB。
该比较使用当前区域性设置获取区域性特定的信息,如大小写规则和各个字符的字母顺序。例如,区域性设置可以指定将某些字符的组合视为单个字符,或者用特殊方法比较大写和小写字符,或者字符的排列顺序取决于它前面或后面的字符。
如果其中一个参数是 null 引用,则字符串大于 null 引用;如果两个参数都是 null 引用,则比较结果相等。
这里最重要的是 StringComparison 类型的 comparisonType 参数:
StringComparison.CurrentCulture 使用区域敏感排序规则和当前区域比较字符串。
StringComparison.CurrentCultureIgnoreCase 使用区域敏感排序规则、当前区域来比较字符串,同时忽略被比较字符串的大小写。
StringComparison.InvariantCulture 使用区域敏感排序规则和固定区域比较字符串。
StringComparison.InvariantCultureIgnoreCase 使用区域敏感排序规则、固定区域来比较字符串,同时忽略被比较字符串的大小写。
StringComparison.Ordinal 使用序号排序规则比较字符串。这个就是按照每一个字符的 Unicode 编码就行比较,编码小的就小,之前很多语言采取的都是这种比较方式。
StringComparison.OrdinalIgnoreCase 使用序号排序规则并忽略被比较字符串的大小写,对字符串进行比较。在 StringComparison.Ordinal 的基础上,只是忽略了大小写。