簡體   English   中英

.NET中的字符串比較

[英]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接口。 它返回一個整數。

這里

CompareTo方法主要用於排序或字母順序操作。 當方法調用的主要目的是確定兩個字符串是否相等時,不應使用它。 要確定兩個字符串是否相等,請調用Equals方法。

Equals方法更合適。 這里 ,之間的差異Equals==Equals要求其參數為非空, ==沒有。 另外, ==被實現為使用Equals因此Equals將始終具有更好的性能。

myString.CompareTo(otherString)方法的主要目的是與排序或字母順序操作一起使用。 當主要目的是檢查字符串的相等性時,不應該使用它。

要確定兩個字符串是否相等,請調用Equals方法。“

當僅僅考慮相等時,最好使用.Equals而不是.CompareTo。 因為我也認為編譯器比==操作更快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM