C# String的幾種比較方法對比(Compare,CompareTo, CompareOrdinal、Equals)


原文:http://blog.csdn.net/wushang923/article/details/7527499

注意點:切換方法的時候要注意返回值引起的變化!!!

1、Compare會通過傳遞進來的文化信息來調用對應的比較,CompareTo則會調用與當前線程相關聯的文化信息,這就意味着,如果我們進行國際化的時候,字符串比較必須使用String.Compare靜態方法。而且Compare方法因為是靜態的,要比CompareTo快一些,因為建議盡可能地使用String.Compare方法來代替CompareTo方法!。


2.CompareOrdinal是將整個字符串每5個字符(10個字節)分成一組,然后逐個比較,找到第一個不相同的ASCII碼后退出循環。並且求出兩者的ASCII碼的差。不過我很費解的是微軟為什么要把這個實現的如此麻煩。但是在CLR via C#上有這樣的話:這個方法比其他方法都要快。我想應該是有一定道理的吧。

所以當我們比較大小的時候,盡量使用CompareOrdinal方法。



3.Equals由於是非安全代碼的比較,所以效率要比我們用安全代碼高得多。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM