字符串比较?

可能重复:
C#中字符串比较方法的差异

这些方法有什么区别吗?

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

我应该使用哪一个?

来自reflection器:

 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。