假設我有兩個字符串:a和b。爲了比較是否並有當情況被忽略,我一直使用相同的價值觀:在C中無情地比較字符串#
// (Assume a and b have been verified not to be null)
if (a.ToLower() == b.ToLower())
然而,使用反射,我已經在.NET Framework看到這幾次:
// (arg three is ignoreCase)
if (string.Compare(a, b, true) == 0)
我測試哪個更快,並且ToLower()
每次用我使用的字符串擊敗Compare()
。
請問Compare()
而不是ToLower()
的原因是什麼?關於不同的CultureInfo
?我在撓頭。
他意味着ToLower()示例擊敗了(顯式的)Compare()示例。 – strager 2009-02-02 00:36:18
@克里斯,國際化可能在此發揮作用。 – strager 2009-02-02 00:37:14
好的,那麼string.Compare(a.ToLower(),b.ToLower())比string.Compare(a,b,true)要快。 – core 2009-02-02 00:37:50