[英]String comparison in .NET
(.NET)之間有什么區別(bref)
myString == otherString
和
myString.CompareTo(otherString) == 0
沒有區別,除非myString為null
,在這種情況下myString.CompareTo(otherString)
拋出錯誤( NullReferenceException
)。 此外,使用CompareTo
比==
慢一點。
當您有興趣知道字符串是否在另一個字符串之前或之后以字母順序排序時,請僅使用CompareTo
。 例如, "Car".CompareTo("Cat")
返回-1,因為按字母順序排序時“Car”在“Cat”之前。
CompareTo
只應用於評估訂購。 可能由於某種原因,兩個字符串在排序時比較相同,但不應被視為相等(即==
和Equals
可能返回false
)。
引用文檔 :
將此實例與指定的對象或String進行比較,並返回一個整數,該整數指示此實例是否在排序順序中與指定對象或字符串相同,位於或出現在同一位置 。
強調添加 - 注意它並沒有說兩個對象是相同的。
假設你的意思
myString == otherString
沒有明顯的區別。
假設你的意思是==而不是=
CompareTo實現IComparable接口。 它返回一個整數。
myString.CompareTo(otherString)方法的主要目的是與排序或字母順序操作一起使用。 當主要目的是檢查字符串的相等性時,不應該使用它。
要確定兩個字符串是否相等,請調用Equals方法。“
當僅僅考慮相等時,最好使用.Equals而不是.CompareTo。 因為我也認為編譯器比==操作更快。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.