System.Tuple

方法描述

表示 n 元组,其中 n 为 8 或更大。

语法定义(C# System.Tuple 类 的用法)

[SerializableAttribute]
public class Tuple : IStructuralEquatable, 
	IStructuralComparable, IComparable

构造函数

构造函数名称 构造函数描述
Tuple 初始化 Tuple 类的新实例。

成员/方法

方法名称 方法描述
Equals 返回一个值,该值指示当前的 Tuple 对象是否与指定对象相等。 (重写 Object.Equals(Object)。)
Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
GetHashCode 计算当前 Tuple 对象的哈希代码。 (重写 Object.GetHashCode()。)
GetType 获取当前实例的 Type。 (继承自 Object。)
MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
ToString 返回一个字符串,该字符串表示此 Tuple 实例的值。 (重写 Object.ToString()。)

提示和注释

元组是一种数据结构,其中的值具有特定数目和序列。 Tuple 类表示具有八个或更多组件的 n 元组。

可以通过调用静态 Tuple.Create 方法来实例化恰好包含八个组件的 Tuple 对象。 下面的示例创建一个8 元组(八元组),其中包含小于 20 的质数 。 注意,它使用类型推理来确定每个组件的类型。

C#

VB

复制

var primes = Tuple.Create(2, 3, 5, 7, 11, 13, 17, 19);

还可以通过调用 Tuple 构造函数来实例化包含八个或更多组件的 n 元组对象。 下面的示例使用 Tuple 构造函数创建一个 8 元组,该元组等效于前面的示例中创建的元组。

C#

VB

复制

var primes = new Tuple

Tuple> (2, 3, 5, 7, 11, 13, 17, new Tuple(19));

注意

若要创建包含九个或更多组件的 n 元组,您必须调用 Tuple 构造函数。 Tuple 类的静态工厂方法并不支持具有多于八个组件的 Tuple 对象的创建。

若要使用 Tuple 构造函数实例化具有八个或更多组件的 n 元组,必须提供一个作为 rest 参数的泛型 Tuple 对象,以定义该元组的第八到 n 个组件。 通过以这种方式嵌套泛型 Tuple 对象,您可以创建一个对其组件数量没有实际限制的元组。

下面的示例创建一个 17 元组,该元组包含密歇根州底特律从 1860 到 2000 年每次国家普查的人口数据。 该元组的第一个组件为城市名。 第二个组件是数据系列的开始日期,第三个组件是开始日期的人口。 每个后续批次提供以十年为间隔的人口数。 17 元组是通过在 Tuple 对象内嵌套 Tuple 对象而创建的。 即,Tuple 对象作为 Tuple 类构造函数中的 rest 参数的值提供。此 Tuple 对象又嵌套在一个外部 Tuple 对象中。 即,Tuple 对象作为外部 Tuple 对象的类构造函数中的 rest 参数的值提供。

C#

VB

复制

var from1980 = Tuple.Create(1203339, 1027974, 951270);

var from1910 = new Tuple>

(465766, 993078, 1568622, 1623452, 1849568, 1670144, 1511462, from1980);

var population = new Tuple

Tuple>>

("Detroit", 1860, 45619, 79577, 116340, 205876, 285704, from1910);

通过使用只读 Item1、Item2、Item3、Item4、Item5、Item6 和 Item7 实例属性,可以检索元组的前七个组件的值。 任何其他组件都是嵌套的,可以从 Rest 属性中检索到。 在前一个示例中,Item1 到 Item7 属性检索元组的第一到七个组件。 第八到十四个组件包含在第二层嵌套的元组中,并由 Rest.Item1 到 Rest.Item7 属性表示。 第十五到十七个组件包含在第三层嵌套的元组中,并由 Rest.Rest.Item1 到 Rest.Rest.Item3 属性表示。

元组通常有四种不同的使用方式:

表示一组数据。 例如,元组可以表示一条数据库记录,并且其组件可以表示记录的各个字段。

提供对数据集的轻松访问和操作。

在不使用 out 参数(在 C# 中)或 ByRef 参数(在 Visual Basic)的情况下,从方法中返回多个值。 例如,前一个示例在 Tuple 对象中除返回城市名称外,还返回计算所得的统计信息。

通过单个参数将多个值传递给一个方法。 例如,Thread.Start(Object) 方法有一个单一参数,可以使用该参数向在启动时线程执行的方法提供一个值。 如果将 Tuple 对象作为方法参数提供,则可以提供具有七项数据的线程启动例程。

System.Tuple 类例子


继承层次结构

System.Object

System.Tuple

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

版本信息

.NET Framework 受以下版本支持:4 .NET Framework Client Profile 受以下版本支持:4 受以下版本支持:

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。