Tuple<T1,T2>.Equals(Object) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Returns a value that indicates whether the current Tuple<T1,T2> object is equal to a specified object.
public:
override bool Equals(System::Object ^ obj);
public override bool Equals (object obj);
public override bool Equals (object? obj);
override this.Equals : obj -> bool
Public Overrides Function Equals (obj As Object) As Boolean
Parameters
- obj
- Object
The object to compare with this instance.
Returns
true
if the current instance is equal to the specified object; otherwise, false
.
Examples
The following example calls the Tuple<T1,T2>.Equals(Object) method to determine whether any of the objects in an array of Tuple<T1,T2> objects are equal to one another. The output reflects the fact that the Equals(Object) method returns true
when comparing Tuple<T1,T2> objects whose components have equal values.
using System;
public class Example
{
public static void Main()
{
Tuple<string, Nullable<int>>[] scores =
{ new Tuple<string, Nullable<int>>("Dan", 90),
new Tuple<string, Nullable<int>>("Ernie", null),
new Tuple<string, Nullable<int>>("Jill", 88),
new Tuple<string, Nullable<int>>("Ernie", null),
new Tuple<string, Nullable<int>>("Nancy", 88),
new Tuple<string, Nullable<int>>("Dan", 90) };
// Compare the Tuple objects
for (int ctr = 0; ctr < scores.Length; ctr++)
{
for (int innerCtr = ctr + 1; innerCtr < scores.Length; innerCtr++)
{
Console.WriteLine("{0} = {1}: {2}",
scores[ctr], scores[innerCtr],
scores[ctr].Equals(scores[innerCtr]));
}
Console.WriteLine();
}
}
}
// The example displays the following output:
// (Dan, 90) = (Ernie, ): False
// (Dan, 90) = (Jill, 88): False
// (Dan, 90) = (Ernie, ): False
// (Dan, 90) = (Nancy, 88): False
// (Dan, 90) = (Dan, 90): True
//
// (Ernie, ) = (Jill, 88): False
// (Ernie, ) = (Ernie, ): True
// (Ernie, ) = (Nancy, 88): False
// (Ernie, ) = (Dan, 90): False
//
// (Jill, 88) = (Ernie, ): False
// (Jill, 88) = (Nancy, 88): False
// (Jill, 88) = (Dan, 90): False
//
// (Ernie, ) = (Nancy, 88): False
// (Ernie, ) = (Dan, 90): False
//
// (Nancy, 88) = (Dan, 90): False
open System
let scores =
[| Tuple<string, Nullable<int>>("Dan", 90)
Tuple<string, Nullable<int>>("Ernie", Nullable())
Tuple<string, Nullable<int>>("Jill", 88)
Tuple<string, Nullable<int>>("Ernie", Nullable())
Tuple<string, Nullable<int>>("Nancy", 88)
Tuple<string, Nullable<int>>("Dan", 90) |]
// Compare the Tuple objects
for ctr = 0 to scores.Length - 1 do
for innerCtr = ctr + 1 to scores.Length - 1 do
printfn $"{scores[ctr]} = {scores[innerCtr]}: {scores[ctr].Equals scores[innerCtr]}"
printfn ""
// The example displays the following output:
// (Dan, 90) = (Ernie, ): False
// (Dan, 90) = (Jill, 88): False
// (Dan, 90) = (Ernie, ): False
// (Dan, 90) = (Nancy, 88): False
// (Dan, 90) = (Dan, 90): True
//
// (Ernie, ) = (Jill, 88): False
// (Ernie, ) = (Ernie, ): True
// (Ernie, ) = (Nancy, 88): False
// (Ernie, ) = (Dan, 90): False
//
// (Jill, 88) = (Ernie, ): False
// (Jill, 88) = (Nancy, 88): False
// (Jill, 88) = (Dan, 90): False
//
// (Ernie, ) = (Nancy, 88): False
// (Ernie, ) = (Dan, 90): False
//
// (Nancy, 88) = (Dan, 90): False
Module Example
Public Sub Main()
Dim scores() As Tuple(Of String, Nullable(Of Integer)) =
{ New Tuple(Of String, Nullable(Of Integer))("Dan", 90),
New Tuple(Of String, Nullable(Of Integer))("Ernie", Nothing),
New Tuple(Of String, Nullable(Of Integer))("Jill", 88),
New Tuple(Of String, Nullable(Of Integer))("Ernie", Nothing),
New Tuple(Of String, Nullable(Of Integer))("Nancy", 88),
New Tuple(Of String, Nullable(Of Integer))("Dan", 90) }
' Compare the Tuple objects
For ctr As Integer = 0 To scores.Length - 1
For innerCtr As Integer = ctr + 1 To scores.Length - 1
Console.WriteLine("{0} = {1}: {2}",
scores(ctr), scores(innerCtr),
scores(ctr).Equals(scores(innerCtr)))
Next
Console.WriteLine()
Next
End Sub
End Module
' The example displays the following output:
' (Dan, 90) = (Ernie, ): False
' (Dan, 90) = (Jill, 88): False
' (Dan, 90) = (Ernie, ): False
' (Dan, 90) = (Nancy, 88): False
' (Dan, 90) = (Dan, 90): True
'
' (Ernie, ) = (Jill, 88): False
' (Ernie, ) = (Ernie, ): True
' (Ernie, ) = (Nancy, 88): False
' (Ernie, ) = (Dan, 90): False
'
' (Jill, 88) = (Ernie, ): False
' (Jill, 88) = (Nancy, 88): False
' (Jill, 88) = (Dan, 90): False
'
' (Ernie, ) = (Nancy, 88): False
' (Ernie, ) = (Dan, 90): False
'
' (Nancy, 88) = (Dan, 90): False
Remarks
The obj
parameter is considered to be equal to the current instance under the following conditions:
It is a Tuple<T1,T2> object.
Its two components are of the same types as the current instance.
Its two components are equal to those of the current instance. Equality is determined by the default object equality comparer for each component.