Tuple<T1,T2,T3> 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示 3 元组或三元组。
generic <typename T1, typename T2, typename T3>
public ref class Tuple : IComparable, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable
generic <typename T1, typename T2, typename T3>
public ref class Tuple : IComparable, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable, System::Runtime::CompilerServices::ITuple
public class Tuple<T1,T2,T3> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
[System.Serializable]
public class Tuple<T1,T2,T3> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
public class Tuple<T1,T2,T3> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple
type Tuple<'T1, 'T2, 'T3> = class
interface IStructuralComparable
interface IStructuralEquatable
interface IComparable
[<System.Serializable>]
type Tuple<'T1, 'T2, 'T3> = class
interface IStructuralEquatable
interface IStructuralComparable
interface IComparable
[<System.Serializable>]
type Tuple<'T1, 'T2, 'T3> = class
interface IStructuralEquatable
interface IStructuralComparable
interface IComparable
interface ITuple
type Tuple<'T1, 'T2, 'T3> = class
interface IStructuralComparable
interface IStructuralEquatable
interface IComparable
interface ITuple
Public Class Tuple(Of T1, T2, T3)
Implements IComparable, IStructuralComparable, IStructuralEquatable
Public Class Tuple(Of T1, T2, T3)
Implements IComparable, IStructuralComparable, IStructuralEquatable, ITuple
类型参数
- T1
元组的第一个组件的类型。
- T2
元组的第二个组件的类型。
- T3
元组的第三个组件的类型。
- 继承
-
Tuple<T1,T2,T3>
- 属性
- 实现
注解
元组是具有特定数字和值序列的数据结构。 该 Tuple<T1,T2,T3> 类表示一个 3 元组或三元组,它是具有三个组件的元组。
可以通过调用Tuple<T1,T2,T3>构造函数或静态Tuple.Create<T1,T2,T3>(T1, T2, T3)方法来实例化Tuple<T1,T2,T3>对象。 可以使用只读Item1Item2和Item3实例属性检索元组组件的值。
元组通常以四种不同的方式使用:
表示单个数据集。 例如,元组可以表示数据库记录,其组件可以表示记录的各个字段。
为了提供对数据集的轻松访问和操作。 以下示例定义一个对象数组 Tuple<T1,T2,T3> ,这些对象包含学生名称、其平均考试分数和所参加的测试数。 数组传递给
ComputeStatistics方法,该方法计算测试分数的平均值和标准偏差。using System; public class Example { public static void Main() { Tuple<string, double, int>[] scores = { Tuple.Create("Jack", 78.8, 8), Tuple.Create("Abbey", 92.1, 9), Tuple.Create("Dave", 88.3, 9), Tuple.Create("Sam", 91.7, 8), Tuple.Create("Ed", 71.2, 5), Tuple.Create("Penelope", 82.9, 8), Tuple.Create("Linda", 99.0, 9), Tuple.Create("Judith", 84.3, 9) }; var result = ComputeStatistics(scores); Console.WriteLine("Mean score: {0:N2} (SD={1:N2}) (n={2})", result.Item2, result.Item3, result.Item1); } private static Tuple<int, double, double> ComputeStatistics(Tuple<string, double, int>[] scores) { int n = 0; double sum = 0; // Compute the mean. foreach (var score in scores) { n += score.Item3; sum += score.Item2 * score.Item3; } double mean = sum / n; // Compute the standard deviation. double ss = 0; foreach (var score in scores) { ss = Math.Pow(score.Item2 - mean, 2); } double sd = Math.Sqrt(ss/scores.Length); return Tuple.Create(scores.Length, mean, sd); } } // The example displays the following output: // Mean score: 87.02 (SD=0.96) (n=8)open System let computeStatistics (scores: Tuple<string, double, int>[]) = let mutable n = 0 let mutable sum = 0. // Compute the mean. for score in scores do n <- n + score.Item3 sum <- sum + score.Item2 * double score.Item3 let mean = sum / double n // Compute the standard deviation. let mutable ss = 0. for score in scores do ss <- (score.Item2 - mean) ** 2. let sd = sqrt (ss / double scores.Length) Tuple.Create(scores.Length, mean, sd) let scores = [| Tuple.Create("Jack", 78.8, 8) Tuple.Create("Abbey", 92.1, 9) Tuple.Create("Dave", 88.3, 9) Tuple.Create("Sam", 91.7, 8) Tuple.Create("Ed", 71.2, 5) Tuple.Create("Penelope", 82.9, 8) Tuple.Create("Linda", 99.0, 9) Tuple.Create("Judith", 84.3, 9) |] let result = computeStatistics scores printfn $"Mean score: {result.Item2:N2} (SD={result.Item3:N2}) (n={result.Item1})" // The example displays the following output: // Mean score: 87.02 (SD=0.96) (n=8)Module Example Public Sub Main() Dim scores() = { Tuple.Create("Jack", 78.8, 8), Tuple.Create("Abbey", 92.1, 9), Tuple.Create("Dave", 88.3, 9), Tuple.Create("Sam", 91.7, 8), Tuple.Create("Ed", 71.2, 5), Tuple.Create("Penelope", 82.9, 8), Tuple.Create("Linda", 99.0, 9), Tuple.Create("Judith", 84.3, 9) } Dim result = ComputeStatistics(scores) Console.WriteLine("Mean score: {0:N2} (SD={1:N2}) (n={2})", result.Item2, result.Item3, result.Item1) End Sub Private Function ComputeStatistics(scores() As Tuple(Of String, Double, Integer)) _ As Tuple(Of Integer, Double, Double) Dim n As Integer = 0 Dim sum As Double = 0 ' Compute the mean. For Each score In scores n+= score.Item3 sum += score.Item2 * score.Item3 Next Dim mean As Double = sum / n ' Compute the standard deviation. Dim ss As Double = 0 For Each score In scores ss = Math.Pow(score.Item2 - mean, 2) Next Dim sd As Double = Math.Sqrt(ss/scores.Length) Return Tuple.Create(scores.Length, mean, sd) End Function End Module ' The example displays the following output: ' Mean score: 87.02 (SD=0.96) (n=8)在不使用
out参数(在 C# 中)或ByRef参数(在 Visual Basic 中)的情况下从方法返回多个值。 例如,上一个示例在对象中 Tuple<T1,T2,T3> 返回其摘要测试分数统计信息。通过单个参数将多个值传递给方法。 例如, Thread.Start(Object) 该方法具有一个参数,用于向线程在启动时执行的方法提供一个值。 如果提供对象 Tuple<T1,T2,T3> 作为方法参数,则可以提供线程的启动例程,其中包含三个数据项。
构造函数
| 名称 | 说明 |
|---|---|
| Tuple<T1,T2,T3>(T1, T2, T3) |
初始化 Tuple<T1,T2,T3> 类的新实例。 |
属性
| 名称 | 说明 |
|---|---|
| Item1 |
获取当前 Tuple<T1,T2,T3> 对象的第一个组件的值。 |
| Item2 |
获取当前 Tuple<T1,T2,T3> 对象的第二个组件的值。 |
| Item3 |
获取当前 Tuple<T1,T2,T3> 对象的第三个组件的值。 |
方法
| 名称 | 说明 |
|---|---|
| Equals(Object) |
返回一个值,该值指示当前 Tuple<T1,T2,T3> 对象是否等于指定对象。 |
| GetHashCode() |
返回当前 Tuple<T1,T2,T3> 对象的哈希代码。 |
| GetType() |
获取当前实例的 Type。 (继承自 Object) |
| MemberwiseClone() |
创建当前 Object的浅表副本。 (继承自 Object) |
| ToString() |
返回一个字符串,表示此 Tuple<T1,T2,T3> 实例的值。 |
显式接口实现
| 名称 | 说明 |
|---|---|
| IComparable.CompareTo(Object) |
将当前 Tuple<T1,T2,T3> 对象与指定对象进行比较,并返回一个整数,该整数指示当前对象是之前、之后还是与排序顺序中的指定对象位于同一位置。 |
| IStructuralComparable.CompareTo(Object, IComparer) |
使用指定的比较器将当前 Tuple<T1,T2,T3> 对象与指定对象进行比较,并返回一个整数,该整数指示当前对象是之前、之后还是与排序顺序中的指定对象位于同一位置。 |
| IStructuralEquatable.Equals(Object, IEqualityComparer) |
返回一个值,该值指示当前 Tuple<T1,T2,T3> 对象是否与基于指定比较方法的指定对象相等。 |
| IStructuralEquatable.GetHashCode(IEqualityComparer) |
使用指定的计算方法计算当前 Tuple<T1,T2,T3> 对象的哈希代码。 |
| ITuple.Item[Int32] |
获取指定 |
| ITuple.Length |
获取 . 中的 |
扩展方法
| 名称 | 说明 |
|---|---|
| Deconstruct<T1,T2,T3>(Tuple<T1,T2,T3>, T1, T2, T3) |
将包含 3 个元素的元组解构为单独的变量。 |
| ToValueTuple<T1,T2,T3>(Tuple<T1,T2,T3>) |
将类的 |