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)

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^