StructuralComparisons.StructuralEqualityComparer Property

Definition

Gets a predefined object that compares two objects for structural equality.

public:
 static property System::Collections::IEqualityComparer ^ StructuralEqualityComparer { System::Collections::IEqualityComparer ^ get(); };
public static System.Collections.IEqualityComparer StructuralEqualityComparer { get; }
member this.StructuralEqualityComparer : System.Collections.IEqualityComparer
Public Shared ReadOnly Property StructuralEqualityComparer As IEqualityComparer

Property Value

A predefined object that is used to compare two collection objects for structural equality.

Remarks

When the IComparer object returned by this property is passed to the equality comparison method of a collection object, such as Array.IStructuralEquatable.Equals(Object, IEqualityComparer) or Tuple<T1,T2,T3>.IStructuralEquatable.Equals(Object, IEqualityComparer), its IEqualityComparer.Equals method is called for each member of an array or for each component of a tuple. This implementation of the Equals method behaves as follows when it compares each item of a collection object with the corresponding item of another collection object:

  • If both items are null, it considers the two items to be equal.

  • If one item is null but the other item is not, it considers the two items to be unequal.

  • If the first item in the comparison can be cast to an IStructuralEquatable object (in other words, if it is a collection object that implements the IStructuralEquatable interface), it calls the IStructuralEquatable.Equals method.

  • If the first item in the comparison cannot be cast to an IStructuralEquatable object (in other words, if it is not a collection object that implements the IStructuralEquatable interface), it calls the item's Equals method.

Applies to

See also