关于c#:不同的字符串比较方法有什么区别

What is difference between different string compare methods

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Differences in string compare methods in C#

在.NET中有许多字符串比较方法,我只是想确认考虑到性能,哪种方法最适合使用。

1
2
3
4
5
6
7
8
9
10
11
string.Equals()

string.Compare()

string.CompareTo()

string.CompareOrdinal()

string.ReferenceEquals()

if (str1 == str2)


从msdn中提取

字符串等于

确定此实例和指定的对象(也必须是字符串对象)是否具有相同的值。

比较字符串比较两个指定的字符串对象并返回一个整数,该整数指示它们在排序顺序中的相对位置。

字符串.compareto将此实例与指定的对象或字符串进行比较,并返回一个整数,该整数指示此实例是在指定的对象或字符串之前、之后还是以相同的排序顺序出现在同一位置。

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

字符串相等运算符预定义的字符串相等运算符为:

bool operator==(字符串x,字符串y);布尔操作员!=(字符串x,字符串y);当以下条件之一为真时,认为两个字符串值相等:

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