C# 字符串比较-Compare

作者:vkvi 来源:千一网络(原创) 日期:2008-1-3

前面讲了可以利用 string 实例的 CompareTo 方法进行字符串比较,现在谈谈 string 的静态方法 Compare,Compare 也是字符串比较,但功能更强。

基本语法

Compare 有多个重载函数,列出最简单的一个。

public static int Compare (
    string strA,
    string strB
)

返回值

  • 小于零,strA 小于 strB;
  • 零,strA 等于 strB;
  • 大于零,strA 大于 strB。

示例

int result = string.Compare("abc", "ABC");
int result = string.Compare("abc", "ABC", true) //忽略大小写比较

备注

该比较使用当前区域性设置获取区域性特定的信息,如大小写规则和各个字符的字母顺序。例如,区域性设置可以指定将某些字符的组合视为单个字符,或者用特殊方法比较大写和小写字符,或者字符的排列顺序取决于它前面或后面的字符。

如果其中一个参数是 null 引用,则字符串大于 null 引用;如果两个参数都是 null 引用,则比较结果相等。

这里最重要的是 StringComparison 类型的 comparisonType 参数:

  • StringComparison.CurrentCulture 使用区域敏感排序规则和当前区域比较字符串。
  • StringComparison.CurrentCultureIgnoreCase 使用区域敏感排序规则、当前区域来比较字符串,同时忽略被比较字符串的大小写。
  • StringComparison.InvariantCulture 使用区域敏感排序规则和固定区域比较字符串。
  • StringComparison.InvariantCultureIgnoreCase 使用区域敏感排序规则、固定区域来比较字符串,同时忽略被比较字符串的大小写。
  • StringComparison.Ordinal 使用序号排序规则比较字符串。这个就是按照每一个字符的 Unicode 编码就行比较,编码小的就小,之前很多语言采取的都是这种比较方式。
  • StringComparison.OrdinalIgnoreCase 使用序号排序规则并忽略被比较字符串的大小写,对字符串进行比较。在 StringComparison.Ordinal 的基础上,只是忽略了大小写。

相关文章