字符串比较?
可能重复:
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。