在C#中, ValueTuple结构提供了用于创建的静态方法价值元组。它在下定义系统命名空间。引入.NET Framework 4.7在C#中提供了运行时实现元组。 ValueTuple结构用于表示不包含任何元素的元组。通常, 它提供用于创建或比较值元组的静态方法。借助ValueTuple结构的Create方法, 你可以创建一个值元组, 其中包含从0到8的元素。它在以下方面与Tuple类不同:
- 它是值类型而不是引用类型。
- 它是可变的, 而不是只读的。
- 在ValueTuple中, 项目1, item2, 项目3, 等等。数据成员是字段而不是属性。
该结构实现结构可比, 结构平等, 可比, IComparable <ValueTuple>, IEquatable <ValueTuple>和ITuple接口。
方法
方法 | 描述 |
---|---|
CompareTo(ValueTuple) | 将当前的ValueTuple实例与指定的ValueTuple实例进行比较。 |
创造() | 创建一个零值的新值元组。 |
创建<T1, T2, T3, T4, T5, T6, T7, T8>(T1, T2, T3, T4, T5, T6, T7, T8) | 创建一个具有8个组成部分(八进制)的新值元组。 |
创建<T1, T2, T3, T4, T5, T6, T7>(T1, T2, T3, T4, T5, T6, T7) | 创建一个具有7个组成部分的新值元组。 |
创建<T1, T2, T3, T4, T5, T6>(T1, T2, T3, T4, T5, T6) | 创建一个具有6个组件(六联)的新值元组。 |
创建<T1, T2, T3, T4, T5>(T1, T2, T3, T4, T5) | 创建一个具有5个组成部分的新值元组(一个五元组)。 |
创建<T1, T2, T3, T4>(T1, T2, T3, T4) | 创建一个具有4个组成部分(四重)的新值元组。 |
创建<T1, T2, T3>(T1, T2, T3) | 创建一个具有3个组成部分(三重组成)的新值元组。 |
创建<T1, T2>(T1, T2) | 创建一个具有两个组件(一对)的新值元组。 |
创建<T1>(T1) | 创建一个具有1个组件(单例)的新值元组。 |
等于(ValueTuple) | 确定两个ValueTuple实例是否相等。此方法始终返回true。 |
等于(对象) | 返回一个值, 该值指示当前ValueTuple实例是否等于指定的对象。 |
GetHashCode() | 返回当前ValueTuple实例的哈希码。 |
ToString() | 返回此ValueTuple实例的字符串表示形式。 |
例子:
// C# program to illustrate the
// methods of ValueTuple struct
using System;
class GFG {
// Main method
static public void Main()
{
// Creating a value tuple with
// zero element using Create method
var MyTple1 = ValueTuple.Create();
// Using GetHashCode method
Console.WriteLine( "HashCode of a value tuple with " +
"zero elements: " + MyTple1.GetHashCode());
// Creating a value tuple
var MyTple2 = ValueTuple.Create(56, 3);
var MyTple3 = ValueTuple.Create(56, 45);
// Using CompareTo method
int res1 = MyTple2.CompareTo(MyTple3);
// Display result
Console.WriteLine( "CompareTo Method Result: " + res1);
}
}
输出如下:
HashCode of a value tuple with zero elements: 0
CompareTo Method Result: -1
参考:
- https://docs.microsoft.com/en-us/dotnet/api/system.valuetuple?view=netframework-4.8