.NET中的字符串比较
本文关键字:比较 字符串 NET | 更新日期: 2023-09-27 18:25:09
(.NET)之间有什么区别
myString == otherString
和
myString.CompareTo(otherString) == 0
没有区别,除了myString是null
时,在这种情况下myString.CompareTo(otherString)
抛出错误(NullReferenceException
)。此外,使用CompareTo
比使用==
慢一点。
只有当您有兴趣知道一个字符串在按字母顺序排序的另一个字符串之前还是之后时,才使用CompareTo
。例如,"Car".CompareTo("Cat")
返回-1,因为按字母顺序排序时"Car"在"Cat"之前。
CompareTo
应仅用于评估排序。无论出于何种原因,出于排序目的,两个字符串可能比较相同,但不应被视为相等(即,==
和Equals
可能返回false
)。
引用文件:
将此实例与指定的对象或字符串进行比较,并返回一个整数,该整数指示此实例在排序顺序中是在指定对象或字符串的前、后还是出现在的同一位置。
强调-注意它不是说两个对象相等。
假设你指的是
myString == otherString
没有明显的区别。
假设你的意思是==而不是=
CompareTo实现了IComparable接口。它返回一个整数。
从这里开始:
CompareTo方法主要用于排序或按字母顺序排列操作。当主方法调用的目的是确定两个字符串是否相等的要确定两个字符串是否相等,请调用Equals方法。
Equals
方法比较合适。由此可知,Equals
和==
之间的区别在于,Equals
要求其参数为非空,而==
则不要求。此外,==
是使用Equals
实现的,因此Equals
将始终具有更好的性能。
myString.CompareTo(otherString)方法的主要用途是用于排序或按字母顺序排列操作。当主要目的是检查字符串的相等性时,不应使用它。
要确定两个字符串是否相等,请调用Equals方法。"
当只查找相等时,最好使用.Equals而不是.CompareTo。因为我还认为编译器比==操作更快。