字符串比较?

问题描述:

可能重复:
Differences in string compare methods in C#字符串比较?

是否有这些方法之间有什么区别?

string.Compare(s1, s2) == 0 
s1.CompareTo(s2) == 0 
s1.Equals(s2) 
s1 == s2 

我应该使用哪一个?

从反射器:

public static int Compare(string strA, string strB) 
{ 
    return CultureInfo.CurrentCulture.CompareInfo.Compare(strA, strB, CompareOptions.None); 
} 
public int CompareTo(string strB) 
{ 
    if (strB == null) 
    { 
     return 1; 
    } 
    return CultureInfo.CurrentCulture.CompareInfo.Compare(this, strB, CompareOptions.None); 
} 

所以CompareTo具有比Compare附加的参考检查。

public static bool operator ==(string a, string b) 
{ 
    return Equals(a, b); 
} 

所以==是完全一样Equals。 两个Compare和两个Equals之间的差异是,您可以将CompareOptions参数传递给Compare,并返回0/1/-1。而Equals没有收到CompareOptions参数,它只能告诉你TRUE/FALSE。