C#中高效率比較複雜物件
比較複雜物件時,選擇高效率的方法至關重要。在C# 4.0及更高版本中,最佳方法是利用IEquatable<T>
接口,確保快速比較。
為自訂類型實作IEquatable
為所有參與比較的自訂類型實作IEquatable<T>
介面。在包含類型中,呼叫包含類型的Equals
方法。如果包含的元素是集合,則使用SequenceEqual
擴充方法,該方法會在內部對每個元素呼叫Equals
。
值型別與參考型別的Equals方法
對於值型,直接呼叫Equals
方法。即使屬性或欄位未賦值,它們也具有預設值。對於引用類型,首先使用ReferenceEquals
檢查引用相等性。如果檢查失敗,則檢查空引用並呼叫Equals
方法。這確保了優化的比較。
範例實作
<code class="language-csharp">public class Person : IEquatable<Person> { // ... public bool Equals(Person other) { // ... } } public class Address : IEquatable<Address> { // ... public bool Equals(Address other) { // ... } } public class City : IEquatable<City> { // ... public bool Equals(City other) { // ... } }</code>
以上是如何在 C# 中有效地確定複雜物件的相等性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!