Tuple<'T1, 'T2, 'T3>.IStructuralEquatable.Equals Method (Object, IEqualityComparer)


Returns a value that indicates whether the current Tuple<'T1, 'T2, 'T3> object is equal to a specified object based on a specified comparison method.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

private abstract Equals : 
        other:Object *
        comparer:IEqualityComparer -> bool
private override Equals : 
        other:Object *
        comparer:IEqualityComparer -> bool


Type: System.Object

The object to compare with this instance.

Type: System.Collections.IEqualityComparer

An object that defines the method to use to evaluate whether the two objects are equal.

Return Value

Type: System.Boolean

true if the current instance is equal to the specified object; otherwise, false.

This member is an explicit interface member implementation. It can be used only when the Tuple<'T1, 'T2, 'T3> instance is cast to an IStructuralEquatable interface.

The IEqualityComparer.Equals implementation is called only if other is not null, and if it can be successfully cast (in C#) or converted (in Visual Basic) to a Tuple<'T1, 'T2, 'T3> object whose components are of the same types as the current instance. The Tuple<'T1, 'T2, 'T3>.IStructuralEquatable.Equals method first passes the Item1 values of the Tuple<'T1, 'T2, 'T3> objects to be compared to the IEqualityComparer.Equals implementation. If this method call returns true, the method is called again and passed the Item2 values of the two Tuple<'T1, 'T2, 'T3> objects. If this method call returns true again, the method is called a third time and passed the Item3 values of the two Tuple<'T1, 'T2, 'T3> objects.

The following example defines an Item2Comparer class that implements the IEqualityComparer interface and changes the way in which Tuple<'T1, 'T2, 'T3> objects are evaluated for equality. The method always returns true when it is passed the Item1 property values of two Tuple<'T1, 'T2, 'T3> objects, and it calls the Tuple<'T1, 'T2, 'T3>.IStructuralEquatable.Equals method to evaluate their Item2 property values. If this method call returns true, their Item3 property values are passed to the method, which always returns true. As a result, the method tests for equality based only on the value of the Item2 property. The output illustrates the result for a data set of Tuple<'T1, 'T2, 'T3> objects that record the names, mean test score, and number of tests of students in a class.

No code example is currently available or this language may not be supported.

Universal Windows Platform
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Available since 4.0
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Return to top