StringComparison枚举

来源:互联网 发布:java链表实现原理 编辑:程序博客网 时间:2024/04/28 01:26

StringComparison 枚举类型:

 

 

官方解释:

CurrentCulture 使用区域敏感排序规则和当前区域比较字符串。
CurrentCultureIgnoreCase 使用区域敏感排序规则、当前区域来比较字符串,同时忽略被比较字符串的大小写。
InvariantCulture 使用区域敏感排序规则和固定区域比较字符串。
InvariantCultureIgnoreCase 使用区域敏感排序规则、固定区域来比较字符串,同时忽略被比较字符串的大小写。
Ordinal 使用序号排序规则比较字符串。
OrdinalIgnoreCase 使用序号排序规则并忽略被比较字符串的大小写,对字符串进行比较。

 

1.Ordinal是根据字节进行比较字符串的,效率较高;OrdinalIgnoreCase 忽略大小写比较;

 

2.CurrentCulture 在当前的区域信息下进行比较,什么事当前区域信息,即指当前的 cultrue 吧,如 en-US;

 

3.InvariantCulture ,在任何系统中(不同的culture)比较都将得到相同的结果,一般在重新定义isEqual这个方法的时候都用

   InvariantCultureIgnoreCase来避免原版在不同culture比较发生错误的BUG。

 

附上示例(引用):

            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
            string s1 = "visualstudio";
            string s2 = "windows";
            Console.WriteLine(String.Compare(s1, s2,StringComparison.CurrentCulture)); //输出"-1
            Thread.CurrentThread.CurrentCulture = new CultureInfo("sv-SE");
            Console.WriteLine(String.Compare(s1, s2,StringComparison.CurrentCulture)); //输出"1"


            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
            string s1 = "visualstudio";
            string s2 = "windows";
            Console.WriteLine(String.Compare(s1, s2,StringComparison.InvariantCulture)); //输出"-1"
            Thread.CurrentThread.CurrentCulture = new CultureInfo("sv-SE");
            Console.WriteLine(String.Compare(s1, s2,StringComparison.InvariantCulture)); //输出"-1"

原创粉丝点击