字符串函数使用与 Culture
MSDN解释:
http://msdn.microsoft.com/zh-cn/library/hyxc48dt.aspx
部分摘录:
该比较使用 culture 参数来获取区域性特定的信息,如大小写规则和各个字符的字母顺序。 例如,区域性可以指定将某些字符的组合视为单个字符,或者用特殊方法比较大写和小写字符,或者字符的排序顺序取决于它前面或后面的字符。
使用字排序规则执行比较。 有关字、字符串和顺序排序的更多信息,请参见 System.Globalization.CompareOptions。
一个或者两个比较字都可以是 null。 根据定义,任何字符串(包括空字符串 (""))的比较结果都大于 null 引用;两个 null 引用的比较结果为相等。
当发现不相等或已经比较了两个字符串时,比较就会终止。 但是,如果两个字符串一直比较到其中一个字符串的末尾时仍相同,而另一个字符串仍有剩余字符,则认为仍有剩余字符的字符串较大。 返回值为执行最后一次比较所得的结果。
下面的示例演示区域性如何影响比较。 在“捷克语 - 捷克共和国”区域性中,“ch”是一个字符,大于“d”。 在“英语 - 美国”区域性中,“ch”是两个字符,而且“c”小于“d”。
using System; using System.Globalization; class Sample { public static void Main() { String str1 = "change"; String str2 = "dollar"; String relation = null; relation = symbol( String.Compare(str1, str2, false, new CultureInfo("en-US")) ); Console.WriteLine("For en-US: {0} {1} {2}", str1, relation, str2); relation = symbol( String.Compare(str1, str2, false, new CultureInfo("cs-CZ")) ); Console.WriteLine("For cs-CZ: {0} {1} {2}", str1, relation, str2); } private static String symbol(int r) { String s = "="; if (r < 0) s = "<"; else if (r > 0) s = ">"; return s; } } /* This example produces the following results. For en-US: change < dollar For cs-CZ: change > dollar */