閱讀英文

共用方式為


Tuple<T1,T2,T3,T4,T5> 類別

定義

代表 5-Tuple 或五重物件。

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

類型參數

T1

Tuple 第 1 個元件的型別。

T2

Tuple 第 2 個元件的型別。

T3

Tuple 第 3 個元件的型別。

T4

Tuple 第 4 個元件的型別。

T5

Tuple 第 5 個元件的型別。

繼承
Tuple<T1,T2,T3,T4,T5>
屬性
實作

備註

Tuple 是具有特定數目和值序列的資料結構。 類別 Tuple<T1,T2,T3,T4,T5> 代表 5 個 Tuple 或 quintuple,這是具有五個元件的 Tuple。

您可以藉由呼叫 Tuple<T1,T2,T3,T4,T5> 建構函式或靜態 Tuple.Create<T1,T2,T3,T4,T5>(T1, T2, T3, T4, T5) 方法來具現化 Tuple<T1,T2,T3,T4,T5> 物件。 您可以使用唯讀 Item1Item2 、、 Item3Item4Item5 實例屬性,擷取 Tuple 元件的值。

Tuple 通常以四種不同的方式使用:

  • 表示單一資料集。 例如,Tuple 可以代表資料庫記錄,而其元件可以代表記錄的個別欄位。

  • 若要提供資料集的輕鬆存取和操作。 下列範例會定義物件陣列 Tuple<T1,T2,T3,T4,T5> ,其中包含在美國足球中執行回場的名稱、他們所玩的遊戲數目,以及那些遊戲期間所評分的總場數、總場場數,以及評分的觸控次數。 陣列會傳遞至 ComputeStatistics 方法,其會計算每個執行後每一遊戲的承載數目、每一遊戲的平均單位、每一遊戲的平均單位、每一次嘗試的平均單位數,以及每次嘗試的平均觸控次數。

    C#
    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<string, int, int, int, int>[] 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<string, double, double, double, double>[] 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<string, double, double, double, double>[] ComputeStatistics(
                    Tuple<string, int, int, int, int>[] players) 
       {
          Tuple<string, double, double, double, double> result; 
          var list = new List<Tuple<string, double, double, double, double>>();
          
          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<T1,T2,T3,T4,T5> 中的玩家名稱。

  • 透過單一參數將多個值傳遞至方法。 例如, Thread.Start(Object) 方法具有單一參數,可讓您將一個值提供給執行緒在啟動時執行的方法。 如果您提供 Tuple<T1,T2,T3,T4,T5> 物件做為方法引數,則可以提供執行緒的啟動常式,其中包含五個專案的資料。

建構函式

屬性

Item1

取得目前 Tuple<T1,T2,T3,T4,T5> 物件之第一個元件的值。

Item2

取得目前 Tuple<T1,T2,T3,T4,T5> 物件之第二個元件的值。

Item3

取得目前 Tuple<T1,T2,T3,T4,T5> 物件之第三個元件的值。

Item4

取得目前 Tuple<T1,T2,T3,T4,T5> 物件之第四個元件的值。

Item5

取得目前 Tuple<T1,T2,T3,T4,T5> 物件之第五個元件的值。

方法

Equals(Object)

傳回值,這個值表示目前的 Tuple<T1,T2,T3,T4,T5> 物件是否等於指定的物件。

GetHashCode()

傳回目前 Tuple<T1,T2,T3,T4,T5> 物件的雜湊碼。

GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回字串,表示這個 Tuple<T1,T2,T3,T4,T5> 執行個體的值。

明確介面實作

IComparable.CompareTo(Object)

將目前的 Tuple<T1,T2,T3,T4,T5> 物件與指定的物件比較,並傳回可指出目前物件在排序次序中,是否在指定物件之前、之後或者相同之位置的整數。

IStructuralComparable.CompareTo(Object, IComparer)

使用指定的比較子將目前的 Tuple<T1,T2,T3,T4,T5> 物件和指定的物件進行比較,並且傳回一個整數,表示目前的物件在排序順序中位於指定之物件的前面、後面還是相的位置。

IStructuralEquatable.Equals(Object, IEqualityComparer)

傳回值,這個值表示依據指定的比較方法,目前的 Tuple<T1,T2,T3,T4,T5> 物件是否等於指定的物件。

IStructuralEquatable.GetHashCode(IEqualityComparer)

使用指定的計算方法,計算目前 Tuple<T1,T2,T3,T4,T5> 物件的雜湊碼。

ITuple.Item[Int32]

取得指定的 Tuple 項目值。

ITuple.Length

取得 Tuple 中的項目數目。

擴充方法

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

將具有 5 個元素的元組解構為不同的變數。

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

將 類別的 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

另請參閱