Tuple<T1,T2,T3,T4,T5,T6,T7> 类

定义

表示 7 元组,或七元组。

C#
public class Tuple<T1,T2,T3,T4,T5,T6,T7> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
C#
public class Tuple<T1,T2,T3,T4,T5,T6,T7> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple
C#
[System.Serializable]
public class Tuple<T1,T2,T3,T4,T5,T6,T7> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable

类型参数

T1

此元组的第一个组件的类型。

T2

此元组的第二个组件的类型。

T3

此元组的第三个组件的类型。

T4

此元组的第四个组件的类型。

T5

元组的第五个分量的类型。

T6

元组的第六个分量的类型。

T7

元组的第七个分量的类型。

继承
Tuple<T1,T2,T3,T4,T5,T6,T7>
属性
实现

注解

元组是具有特定数目和值序列的数据结构。 类 Tuple<T1,T2,T3,T4,T5,T6,T7> 表示 7 元组或 9uple,它是具有七个组件的元组。

可以通过调用Tuple<T1,T2,T3,T4,T5,T6,T7>或静态Tuple.Create<T1,T2,T3,T4,T5,T6,T7>(T1, T2, T3, T4, T5, T6, T7)方法实例化Tuple<T1,T2,T3,T4,T5,T6,T7>对象。 可以使用只读Item1Item2Item3Item4Item5、、、和Item6Item7实例属性检索元组组件的值。

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

  • 表示单个数据集。 例如,元组可以表示数据库记录,其组件可以表示记录的各个字段。

  • 为了提供对数据集的轻松访问和操作。 以下示例定义一个 Tuple<T1,T2,T3,T4,T5,T6,T7> 对象,该对象包含纽约市从 1950 年到 2000 年每次人口普查的人口数据。 九月将传递给该方法 ComputePopulationChange ,该方法计算人口普查之间的年变化率,以及整个 60 年期间的年变化率。

    C#
    using System;
    
    public class Example
    {
       public static void Main()
       {
          // Get population data for New York City, 1950-2000.
          var population = Tuple.Create("New York", 7891957, 7781984, 
                                        7894862, 7071639, 7322564, 8008278);
          var rate = ComputePopulationChange(population);
          // Display results.
          Console.WriteLine("Population Change, {0}, 1950-2000\n", population.Item1);
          Console.WriteLine("Year      {0,10} {1,9}", "Population", "Annual Rate");
          Console.WriteLine("1950      {0,10:N0} {1,11}", population.Item2, "NA");
          Console.WriteLine("1960      {0,10:N0} {1,11:P2}", population.Item3, rate.Item2/10);
          Console.WriteLine("1970      {0,10:N0} {1,11:P2}", population.Item4, rate.Item3/10);
          Console.WriteLine("1980      {0,10:N0} {1,11:P2}", population.Item5, rate.Item4/10);
          Console.WriteLine("1990      {0,10:N0} {1,11:P2}", population.Item6, rate.Item5/10);
          Console.WriteLine("2000      {0,10:N0} {1,11:P2}", population.Item7, rate.Item6/10);
          Console.WriteLine("1950-2000 {0,10:N0} {1,11:P2}", "", rate.Item7/50);
       }
    
       private static Tuple<string, double, double, double, double, double, double> 
            ComputePopulationChange(
               Tuple<string, int, int, int, int, int, int> data)  
       {           
          var rate = Tuple.Create(data.Item1, 
                           (double)(data.Item3 - data.Item2)/data.Item2, 
                           (double)(data.Item4 - data.Item3)/data.Item3, 
                           (double)(data.Item5 - data.Item4)/data.Item4, 
                           (double)(data.Item6 - data.Item5)/data.Item5,
                           (double)(data.Item7 - data.Item6)/data.Item6,
                           (double)(data.Item7 - data.Item2)/data.Item2 );
          return rate;
       }           
    }
    // The example displays the following output:
    //       Population Change, New York, 1950-2000
    //       
    //       Year      Population Annual Rate
    //       1950       7,891,957          NA
    //       1960       7,781,984     -0.14 %
    //       1970       7,894,862      0.15 %
    //       1980       7,071,639     -1.04 %
    //       1990       7,322,564      0.35 %
    //       2000       8,008,278      0.94 %
    //       1950-2000                 0.03 %
    
  • 从方法返回多个值,而不使用 out C#) 中的参数 (或ByRefVisual Basic) 中的参数 (。 例如,上一个示例在对象中 Tuple<T1,T2,T3,T4,T5,T6,T7> 返回其计算统计信息以及城市名称。

  • 通过单个参数将多个值传递给方法。 例如,该方法 Thread.Start(Object) 有一个参数,可用于向线程在启动时执行的方法提供一个值。 如果将对象作为方法参数提供 Tuple<T1,T2,T3,T4,T5,T6,T7> ,则可以提供线程的启动例程,其中包含七项数据。

构造函数

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

初始化 Tuple<T1,T2,T3,T4,T5,T6,T7> 类的新实例。

属性

Item1

获取当前 Tuple<T1,T2,T3,T4,T5,T6,T7> 对象的第一个分量的值。

Item2

获取当前 Tuple<T1,T2,T3,T4,T5,T6,T7> 对象的第二个分量的值。

Item3

获取当前 Tuple<T1,T2,T3,T4,T5,T6,T7> 对象的第三个分量的值。

Item4

获取当前 Tuple<T1,T2,T3,T4,T5,T6,T7> 对象的第四个分量的值。

Item5

获取当前 Tuple<T1,T2,T3,T4,T5,T6,T7> 对象的第五个分量的值。

Item6

获取当前 Tuple<T1,T2,T3,T4,T5,T6,T7> 对象的第六个分量的值。

Item7

获取当前 Tuple<T1,T2,T3,T4,T5,T6,T7> 对象的第七个分量的值。

方法

Equals(Object)

返回一个值,该值指示当前的 Tuple<T1,T2,T3,T4,T5,T6,T7> 对象是否与指定对象相等。

GetHashCode()

返回当前 Tuple<T1,T2,T3,T4,T5,T6,T7> 对象的哈希代码。

GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示此 Tuple<T1,T2,T3,T4,T5,T6,T7> 实例的值的字符串。

显式接口实现

IComparable.CompareTo(Object)

比较当前 Tuple<T1,T2,T3,T4,T5,T6,T7> 对象与指定对象,并返回一个整数,该整数指示当前对象在排序顺序中的位置:是在指定对象之前、之后还是在与指定对象相同的位置。

IStructuralComparable.CompareTo(Object, IComparer)

使用指定的比较器将当前的 Tuple<T1,T2,T3,T4,T5,T6,T7> 对象与指定对象进行比较,并返回一个整数,该整数指示当前对象在排序顺序中的位置是在指定对象之前、之后还是与其相同。

IStructuralEquatable.Equals(Object, IEqualityComparer)

返回一个值,该值根据指定的比较方法指示当前的 Tuple<T1,T2,T3,T4,T5,T6,T7> 对象是否与指定对象相等。

IStructuralEquatable.GetHashCode(IEqualityComparer)

使用指定的计算方法计算当前 Tuple<T1,T2,T3,T4,T5,T6,T7> 对象的哈希代码。

ITuple.Item[Int32]

获取指定 Tuple 元素的值。

ITuple.Length

获取 Tuple 中的元素数。

扩展方法

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

将具有 7 个元素的元组解构为不同的变量。

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

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

适用于

产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

另请参阅