ValueTuple<T1,T2> 结构

定义

表示含有 2 个组件的值元组。

generic <typename T1, typename T2>
public value class ValueTuple : IComparable, IComparable<ValueTuple<T1, T2>>, IEquatable<ValueTuple<T1, T2>>, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable, System::Runtime::CompilerServices::ITuple
generic <typename T1, typename T2>
public value class ValueTuple : IComparable, IComparable<ValueTuple<T1, T2>>, IEquatable<ValueTuple<T1, T2>>, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable
public struct ValueTuple<T1,T2> : IComparable, IComparable<(T1, T2)>, IEquatable<(T1, T2)>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple
public struct ValueTuple<T1,T2> : IComparable, IComparable<(T1, T2)>, IEquatable<(T1, T2)>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
[System.Serializable]
public struct ValueTuple<T1,T2> : IComparable, IComparable<(T1, T2)>, IEquatable<(T1, T2)>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
type ValueTuple<'T1, 'T2> = struct
    interface ITuple
type ValueTuple<'T1, 'T2> = struct
[<System.Serializable>]
type ValueTuple<'T1, 'T2> = struct
    interface ITuple
Public Structure ValueTuple(Of T1, T2)
Implements IComparable, IComparable(Of ValueTuple(Of T1, T2)), IEquatable(Of ValueTuple(Of T1, T2)), IStructuralComparable, IStructuralEquatable, ITuple
Public Structure ValueTuple(Of T1, T2)
Implements IComparable, IComparable(Of ValueTuple(Of T1, T2)), IEquatable(Of ValueTuple(Of T1, T2)), IStructuralComparable, IStructuralEquatable

类型参数

T1

值元组的第 1 个元素的类型。

T2

值元组的第 2 个元素的类型。

继承
ValueTuple<T1,T2>
属性
实现

注解

值元组是具有特定数字和值序列的数据结构。 结构 ValueTuple<T1,T2> 表示具有两个元素的值元组。

值元组类型不同于元组类型 (,例如 Tuple<T1,T2>) ,如下所示:

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

  • 成员(如Item1Item2字段)而不是属性。

  • 其字段是可变的,而不是只读的。

值元组类型提供运行时实现,该实现支持 C# 中的元 组和 F# 中的结构元组。 除了使用语言语法创建 ValueTuple<T1,T2> 实例外,还可以调用 Create 工厂方法。

序列化和值元组

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

构造函数

ValueTuple<T1,T2>(T1, T2)

初始化一个新 ValueTuple<T1,T2> 实例。

字段

Item1

获取当前 ValueTuple<T1,T2> 实例的第 1 个元素的值。

Item2

获取当前 ValueTuple<T1,T2> 实例的第 2 个元素的值。

方法

CompareTo(ValueTuple<T1,T2>)

将当前 ValueTuple<T1,T2> 实例与指定的 ValueTuple<T1,T2> 实例进行比较。

Equals(Object)

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

Equals(ValueTuple<T1,T2>)

返回一个值,该值指示当前 ValueTuple<T1,T2> 实例是否与指定的 ValueTuple<T1,T2> 实例相等。

GetHashCode()

计算当前 ValueTuple<T1,T2> 实例的哈希代码。

ToString()

返回表示此 ValueTuple<T1,T2> 实例的值的字符串。

显式接口实现

IComparable.CompareTo(Object)

使用指定的比较器比较当前 ValueTuple<T1,T2> 实例与指定对象,并返回一个整数,该整数指示当前对象在排序顺序中的位置:是在指定对象之前、之后还是在与指定对象相同的位置。

IStructuralComparable.CompareTo(Object, IComparer)

使用指定的比较器比较当前 ValueTuple<T1,T2> 实例与指定对象,并返回一个整数,该整数指示当前对象在排序顺序中的位置:是在指定对象之前、之后还是在与指定对象相同的位置。

IStructuralEquatable.Equals(Object, IEqualityComparer)

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

IStructuralEquatable.GetHashCode(IEqualityComparer)

通过使用指定计算方法计算当前 ValueTuple<T1,T2> 实例的哈希代码。

ITuple.Item[Int32]

获取指定 ValueTuple 元素的值。

ITuple.Length

获取 ValueTuple 中的元素数。

扩展方法

ToTuple<T1,T2>(ValueTuple<T1,T2>)

ValueTuple 结构的实例转换为 Tuple 类的实例。

适用于