String.Compare VS. String.CompareOrdinal

String.Compare VS. String.CompareOrdinal


前言

在做文字排序时,发现为英文字的大小写居然无法依大小写排序,如t应该会排在W之后,再看一下程序中String.Compare输出的数据居然跟我所想像的不同!

测试

在VB中直接使用”字符串A”是否大于”字符串B”直接比又是正常的,所以,应该是对String.Compare的认知有错,上网找了一些数据,做了以下的运算比较,就比较清楚了。

请看以下的图,

image

String.Compare:比较过程会使用文字排序规则执行

String.CompareOrdinal:会使用序数排序规则,执行区分大小写的比较

String.Compare则是在文字相同时,再去比较大小写,如果有设定区分大小写比较的话,如”a” 与”A”的比较!

结论

就我的认知,下次如果使用比较字符串的话,我应该还是会使用String.CompareOrdinal,比较符合我个人预期的想法。

参考数据

String.CompareOrdinal 方法 (String, String)

String.Compare 方法 (String, String, Boolean)