在.NET中有许多字符串比较方法,我只是想确认考虑性能时最好使用哪种方法。
string.Equals()
string.Compare()
string.CompareTo()
string.CompareOrdinal()
string.ReferenceEquals()
if (str1 == str2)
答案 0 :(得分:21)
从msdn发送
<强> string.Equals 强>
确定此实例和指定对象(也必须是String对象)是否具有相同的值。
string.Compare 比较两个指定的String对象,并返回一个整数,指示它们在排序顺序中的相对位置。
string.CompareTo 将此实例与指定的对象或String进行比较,并返回一个整数,该整数指示此实例是否在排序顺序中与指定对象或字符串相同的位置之前,之后或出现。
<强> string.CompareOrdinal 强> 通过计算每个字符串中相应Char对象的数值来比较两个指定的String对象。
<强> String equality operators 强> 预定义的字符串相等运算符是:
bool operator ==(string x,string y); bool operator!=(string x,string y); 当满足下列条件之一时,两个字符串值被视为相等:
两个值均为空。 这两个值都是对字符串实例的非空引用,这些实例在每个字符位置具有相同的长度和相同的字符。 字符串相等运算符比较字符串值而不是字符串引用。当两个单独的字符串实例包含完全相同的字符序列时,字符串的值相等,但引用不同。如第7.9.6节所述,引用类型相等运算符可用于比较字符串引用而不是字符串值。