System.Tuple

上一篇:System.Tuple 类 下一篇:System.Tuple 类

方法描述

表示 5 元组,即五元组。

语法定义(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 类表示一个 5 元组,即具有 5 个分量的元组。

可以通过调用 Tuple 构造函数或静态 Tuple.Create(T1, T2, T3, T4, T5) 方法来实例化 Tuple 对象。 通过使用只读的 Item1、Item2、Item3、Item4、和 Item5 实例属性,可以检索元组中组件的值。

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

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

提供对数据集的轻松访问和操作。 下面的示例定义了 Tuple 对象数组,其中包含了美国橄榄球跑卫的名称、他们参加的比赛数量、带球次数、获得的总码数以及这些比赛中得分的达阵次数。 该数组传递给 ComputeStatistics 方法,该方法计算跑卫的每场带球次数、每场平均码数、每次带球的平均码数以及每次比赛中的平均达阵次数。

C#

VB

复制

using System;

using System.Collections.Generic;

public class Example

{

public static void Main()

{

// Organization of runningBacks 5-tuple:

// Component 1: Player name

// Component 2: Number of games played

// Component 3: Number of attempts (carries)

// Component 4: Number of yards gained

// Component 5: Number of touchdowns

Tuple[] runningBacks =

{ Tuple.Create("Payton, Walter", 190, 3838, 16726, 110),

Tuple.Create("Sanders, Barry", 153, 3062, 15269, 99),

Tuple.Create("Brown, Jim", 118, 2359, 12312, 106),

Tuple.Create("Dickerson, Eric", 144, 2996, 13259, 90),

Tuple.Create("Faulk, Marshall", 176, 2836, 12279, 100) };

// Calculate statistics.

// Organization of runningStats 5-tuple:

// Component 1: Player name

// Component 2: Number of attempts per game

// Component 3: Number of yards per game

// Component 4: Number of yards per attempt

// Component 5: Number of touchdowns per attempt

Tuple[] runningStats =

ComputeStatistics(runningBacks);

// Display the result.

Console.WriteLine("{0,-16} {1,5} {2,6} {3,7} {4,7} {5,7} {6,7} {7,5} {8,7}\n",

"Name", "Games", "Att", "Att/Gm", "Yards", "Yds/Gm",

"Yds/Att", "TD", "TD/Att");

for (int ctr = 0; ctr < runningBacks.Length; ctr++)

Console.WriteLine("{0,-16} {1,5} {2,6:N0} {3,7:N1} {4,7:N0} {5,7:N1} {6,7:N2} {7,5} {8,7:N3}\n",

runningBacks[ctr].Item1, runningBacks[ctr].Item2, runningBacks[ctr].Item3,

runningStats[ctr].Item2, runningBacks[ctr].Item4, runningStats[ctr].Item3,

runningStats[ctr].Item4, runningBacks[ctr].Item5, runningStats[ctr].Item5);

}

private static Tuple[] ComputeStatistics(

Tuple[] players)

{

Tuple result;

var list = new List>();

foreach (var player in players)

{

// Create result object containing player name and statistics.

result = Tuple.Create(player.Item1,

player.Item3/((double)player.Item2),

player.Item4/((double)player.Item2),

player.Item4/((double)player.Item3),

player.Item5/((double)player.Item3));

list.Add(result);

}

return list.ToArray();

}

}

// The example displays the following output:

// Name Games Att Att/Gm Yards Yds/Gm Yds/Att TD TD/Att

//

// Payton, Walter 190 3,838 20.2 16,726 88.0 4.36 110 0.029

//

// Sanders, Barry 153 3,062 20.0 15,269 99.8 4.99 99 0.032

//

// Brown, Jim 118 2,359 20.0 12,312 104.3 5.22 106 0.045

//

// Dickerson, Eric 144 2,996 20.8 13,259 92.1 4.43 90 0.030

//

// Faulk, Marshall 176 2,836 16.1 12,279 69.8 4.33 100 0.035

在不使用 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 系统要求。

上一篇:System.Tuple 类 下一篇:System.Tuple 类