String.Compare VS. String.CompareOrdinal
前言
在做文字排序時,發現為英文字的大小寫居然無法依大小寫排序,如t應該會排在W之後,再看一下程式中String.Compare輸出的資料居然跟我所想像的不同!
測試
在VB中直接使用”字串A”是否大於”字串B”直接比又是正常的,所以,應該是對String.Compare的認知有錯,上網找了一些資料,做了以下的運算比較,就比較清楚了。
請看以下的圖,
String.Compare:比較過程會使用文字排序規則執行
String.CompareOrdinal:會使用序數排序規則,執行區分大小寫的比較
String.Compare則是在文字相同時,再去比較大小寫,如果有設定區分大小寫比較的話,如”a” 與”A”的比較!
結論
就我的認知,下次如果使用比較字串的話,我應該還是會使用String.CompareOrdinal,比較符合我個人預期的想法。
參考資料
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^