原文: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由於是非安全代碼的比較,所以效率要比我們用安全代碼高得多。