📜  检查ValueTuple实例在C#中是否相等

📅  最后修改于: 2021-05-29 23:44:08             🧑  作者: Mango

ValueTuple是C#7.0中引入的结构,表示值类型Tuple。它允许您存储一个数据集,该数据集包含可能彼此相关或不相关的多个值。
在值元组中,可以使用ValueTuple.Equals方法检查两个值元组是否相同。此方法将返回值,该值指示给定的ValueTuple实例是否等于指定的对象。如果给定的元组相等,它将返回true,否则返回false。可以通过两种不同的方式重载此方法:

  1. 等于(ValueTuple)方法
  2. 等于(对象)方法

等于(ValueTuple)方法

Equals(ValueTuple)方法用于检查两个ValueTuple实例是否相等。它总是返回true。此方法的返回类型为System.Boolean

句法:

public bool Equals (ValueTuple other);

在这里, other是一个要与当前实例进行比较的值元组。

返回值:始终返回true。

例子:

// C# program to illustrate to check the
// given ValueTuples are equal or not
using System;
  
class GFG {
  
    // Main method
    static public void Main()
    {
  
        // Creating a value tuples with two elements
        var MyTple1 = ValueTuple.Create(56, 45);
        var MyTple2 = ValueTuple.Create(56, 45);
  
        bool res1 = MyTple1.Equals(MyTple2);
        Console.WriteLine("Is MyTple1 and MyTple2 equal?: " + res1);
    }
}
输出:
Is MyTple1 and MyTple2 equal?: True

等于(对象)方法

Equals(Object)方法用于返回一个值,该值确定当前ValueTuple实例是否等于指定的对象。如果给定的ValueTuple实例等于指定的对象,则此方法将返回true,否则,将返回false。

句法:

public override bool Equals (object obj);

在这里, obj是要与当前实例进行比较的对象。

返回类型:此方法的返回类型为System.Boolean

例子:

// C# program to illustrate how to check the 
// given value tuples is equal or not 
// using Equal(Object) method
using System;
  
class GFG {
  
    // Main method
    static public void Main()
    {
  
        // Creating a value tuples 
        // with one element
        var MyTple1 = (56);
          
        object ob1 = 56;
  
        // Check the given object is equal or not
        // Using Equals(Object) method
        bool res = MyTple1.Equals(ob1);
        if (res == true) 
        {
            Console.WriteLine("The given object is equal to"+
                            " the value tuple element...!!");
        }
  
        else
        {
            Console.WriteLine("Not equal....!!");
        }
    }
}
输出:
The given object is equal to the value tuple element...!!

参考:

  • https://docs.microsoft.com/zh-cn/dotnet/api/system.valuetuple.equals?view=netframework-4.8