ValueTuple 结构

定义

提供用于创建值元组的静态方法。

public value class ValueTuple : IComparable, IComparable<ValueTuple>, IEquatable<ValueTuple>, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable, System::Runtime::CompilerServices::ITuple
public value class ValueTuple : IComparable, IComparable<ValueTuple>, IEquatable<ValueTuple>, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable
public struct ValueTuple : IComparable, IComparable<ValueTuple>, IEquatable<ValueTuple>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple
public struct ValueTuple : IComparable, IComparable<ValueTuple>, IEquatable<ValueTuple>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
[System.Serializable]
public struct ValueTuple : IComparable, IComparable<ValueTuple>, IEquatable<ValueTuple>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
type ValueTuple = struct
    interface ITuple
type ValueTuple = struct
[<System.Serializable>]
type ValueTuple = struct
    interface ITuple
Public Structure ValueTuple
Implements IComparable, IComparable(Of ValueTuple), IEquatable(Of ValueTuple), IStructuralComparable, IStructuralEquatable, ITuple
Public Structure ValueTuple
Implements IComparable, IComparable(Of ValueTuple), IEquatable(Of ValueTuple), IStructuralComparable, IStructuralEquatable
继承
ValueTuple
属性
实现

注解

元组是具有特定数目和元素序列的数据结构。 元组的一个示例是一个数据结构,其中三个元素 (称为三元组或三个) ,用于存储标识符(如第一个元素中的人的姓名),第二个元素中的年份,第三个元素中的人的收入。

值元组是在 .NET Framework 4.7 中引入的元组类型,用于在 C# 中提供元组的运行时实现,以及 F# 中的结构元组。 它们不同于元组类,例如Tuple<T1>Tuple<T1,T2>,等等,如下所示:

  • 它们是) (值类型的结构,而不是) (引用类型的类。

  • 它们是可变的,而不是只读的。 也就是说,元组组件的值可能会更改。

  • 其数据成员(例如 Item1Item2等)是字段而不是属性。

结构 ValueTuple 表示没有元素的元组。 它主要用于其静态方法,可用于创建和比较值元组类型的实例。 借助其帮助程序方法,可以实例化值元组,而无需显式指定每个值元组组件的类型。 通过调用其静态 Create 方法,可以创建从零到八个组件的值元组。 对于具有 8 个以上的组件的值元组,必须调用 ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> 构造函数。

序列化和值元组

类型ValueTuple在 .NET Core 1.x 或 .NET Framework 4.7 及更低版本中不可序列化。 此外,.NET Standard(包括 .NET Standard 2.0)不强制序列化 ValueTuple 实例;实例是否 ValueTuple 可序列化取决于单个 .NET Standard 实现。 若要确定类型 ValueTuple 是否在特定 .NET 实现上可序列化,请获取一个 Type 对象,该对象表示该 ValueTuple 类型并检索其 IsSerializable 属性的值。 有关 .NET Core 和.NET Framework中可序列化类型的列表,请参阅二进制序列化

方法

CompareTo(ValueTuple)

将当前 ValueTuple 实例与指定的 ValueTuple 实例进行比较。

Create()

创建无组件的新值元组。

Create<T1,T2,T3,T4,T5,T6,T7,T8>(T1, T2, T3, T4, T5, T6, T7, T8)

创建含有 8 个组件的新值元组(八元组)。

Create<T1,T2,T3,T4,T5,T6,T7>(T1, T2, T3, T4, T5, T6, T7)

创建含有 7 个组件的新值元组(七元组)。

Create<T1,T2,T3,T4,T5,T6>(T1, T2, T3, T4, T5, T6)

创建含有 6 个组件的新值元组(六元组)。

Create<T1,T2,T3,T4,T5>(T1, T2, T3, T4, T5)

创建含有 5 个组件的新值元组(五元组)。

Create<T1,T2,T3,T4>(T1, T2, T3, T4)

创建含有 4 个组件的新值元组(四元组)。

Create<T1,T2,T3>(T1, T2, T3)

创建含有 3 个组件的新值元组(三元组)。

Create<T1,T2>(T1, T2)

创建含有 2 个组件的新值元组(二元组)。

Create<T1>(T1)

创建含有 1 个组件的新值元组(一元组)。

Equals(Object)

返回一个值,该值指示当前 ValueTuple 实例是否与指定的对象相等。

Equals(ValueTuple)

确定两个 ValueTuple 实例是否相等。 此方法始终返回 true

GetHashCode()

返回当前 ValueTuple 实例的哈希代码。

ToString()

返回此 ValueTuple 实例的字符串表示形式。

显式接口实现

IComparable.CompareTo(Object)

将此 ValueTuple 实例与指定对象进行比较并返回一个对二者的相对值的指示。

IStructuralComparable.CompareTo(Object, IComparer)

将当前 ValueTuple 实例与指定的对象进行比较。

IStructuralEquatable.Equals(Object, IEqualityComparer)

返回一个值,该值指示基于指定的比较方法,当前 ValueTuple 实例是否与指定的对象相等。

IStructuralEquatable.GetHashCode(IEqualityComparer)

返回此 ValueTuple 实例的哈希代码。

ITuple.Item[Int32]

返回 IndexOutOfRangeExceptionValueTuple 中没有任何元素。

ITuple.Length

获取此 ValueTuple 实例的长度,该长度始终为 0。 ValueTuple 中没有任何元素。

适用于