不同的字符串比较方法有什么区别

Pan*_*wal 36 .net c# string-comparison

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

在.NET中有许多字符串比较方法,我只是想确认哪一个是最好的考虑性能.

string.Equals()

string.Compare()

string.CompareTo()

string.CompareOrdinal()

string.ReferenceEquals()

if (str1 == str2)
Run Code Online (Sandbox Code Playgroud)

cry*_*ted 25

从msdn撕掉

string.Equals

确定此实例和指定对象(也必须是String对象)是否具有相同的值.

string.Compare 比较两个指定的String对象,并返回一个整数,指示它们在排序顺序中的相对位置.

string.CompareTo 将此实例与指定的对象或String进行比较,并返回一个整数,该整数指示此实例是否在排序顺序中与指定对象或字符串相同,位于或出现在同一位置.

string.CompareOrdinal 通过计算每个字符串中相应Char对象的数值比较两个指定的String对象.

字符串相等运算符 预定义字符串相等运算符是

bool operator ==(string x,string y); bool operator!=(string x,string y); 当满足以下条件之一时,两个字符串值被视为相等:

两个值都为null.这两个值都是对字符串实例的非空引用,这些实例在每个字符位置具有相同的长度和相同的字符.字符串相等运算符比较字符串值而不是字符串引用.当两个单独的字符串实例包含完全相同的字符序列时,字符串的值相等,但引用不同.如第7.9.6节所述,引用类型相等运算符可用于比较字符串引用而不是字符串值.

  • @VinodSrivastav约翰·史密斯(John Smith)于1980年1月1日出生。另一个人叫约翰·史密斯(John Smith)于1999年12月29日出生。两个人,但名字完全相同。这就是两个单独的字符串具有相同字符但引用不同的方式。 (5认同)