Condividi tramite


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

Definizione

Rappresenta una tupla con 7 elementi, ovvero una settupla.

generic <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
public ref class Tuple : IComparable, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable
generic <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
public ref class Tuple : IComparable, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable, System::Runtime::CompilerServices::ITuple
public class Tuple<T1,T2,T3,T4,T5,T6,T7> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
public class Tuple<T1,T2,T3,T4,T5,T6,T7> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple
[System.Serializable]
public class Tuple<T1,T2,T3,T4,T5,T6,T7> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7> = class
    interface IStructuralComparable
    interface IStructuralEquatable
    interface IComparable
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7> = class
    interface IStructuralComparable
    interface IStructuralEquatable
    interface IComparable
    interface ITuple
[<System.Serializable>]
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7> = class
    interface IStructuralEquatable
    interface IStructuralComparable
    interface IComparable
[<System.Serializable>]
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7> = class
    interface IStructuralEquatable
    interface IStructuralComparable
    interface IComparable
    interface ITuple
Public Class Tuple(Of T1, T2, T3, T4, T5, T6, T7)
Implements IComparable, IStructuralComparable, IStructuralEquatable
Public Class Tuple(Of T1, T2, T3, T4, T5, T6, T7)
Implements IComparable, IStructuralComparable, IStructuralEquatable, ITuple

Parametri di tipo

T1

Tipo del primo componente della tupla.

T2

Tipo del secondo componente della tupla.

T3

Tipo del terzo componente della tupla.

T4

Tipo del quarto componente della tupla.

T5

Tipo del quinto componente della tupla.

T6

Tipo del sesto componente della tupla.

T7

Tipo del settimo componente della tupla.

Ereditarietà
Tuple<T1,T2,T3,T4,T5,T6,T7>
Attributi
Implementazioni

Commenti

Una tupla è una struttura di dati con un numero e una sequenza specifici di valori. La Tuple<T1,T2,T3,T4,T5,T6,T7> classe rappresenta una tupla a 7 o septuple, che è una tupla con sette componenti.

È possibile creare un'istanza di un Tuple<T1,T2,T3,T4,T5,T6,T7> oggetto chiamando il Tuple<T1,T2,T3,T4,T5,T6,T7> metodo statico Tuple.Create<T1,T2,T3,T4,T5,T6,T7>(T1, T2, T3, T4, T5, T6, T7) o . È possibile recuperare il valore dei componenti della tupla usando le proprietà di sola lettura Item1, Item4Item3Item5Item2Item6, e Item7 dell'istanza.

Le tuple vengono comunemente usate in quattro modi diversi:

  • Per rappresentare un singolo set di dati. Ad esempio, una tupla può rappresentare un record di database e i relativi componenti possono rappresentare singoli campi del record.

  • Per consentire l'accesso semplice e la manipolazione di, un set di dati. Nell'esempio seguente viene definito un Tuple<T1,T2,T3,T4,T5,T6,T7> oggetto contenente i dati della popolazione per New York City per ogni censimento compreso tra il 1950 e il 2000. Il septuple viene passato al ComputePopulationChange metodo, che calcola il tasso annuale di variazione tra i censimenti, nonché il tasso annuale di modifica per l'intero periodo di 60 anni.

    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 %
    
    open System
    
    let computePopulationChange (data: Tuple<string, int, int, int, int, int, int>) =  
        Tuple.Create(data.Item1, 
                     double (data.Item3 - data.Item2) / double data.Item2, 
                     double (data.Item4 - data.Item3) / double data.Item3, 
                     double (data.Item5 - data.Item4) / double data.Item4, 
                     double (data.Item6 - data.Item5) / double data.Item5,
                     double (data.Item7 - data.Item6) / double data.Item6,
                     double (data.Item7 - data.Item2) / double data.Item2)
    
    // Get population data for New York City, 1950-2000.
    let population = 
        Tuple.Create("New York", 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
    let rate = computePopulationChange population
    // Display results.
    printfn $"Population Change, {population.Item1}, 1950-2000\n"
    printfn $"""Year      {"Population",10} {"Annual Rate",9}"""
    printfn $"""1950      {population.Item2,10:N0} {"NA",11}"""
    printfn $"1960      {population.Item3,10:N0} {rate.Item2 / 10.,11:P2}"
    printfn $"1970      {population.Item4,10:N0} {rate.Item3 / 10.,11:P2}" 
    printfn $"1980      {population.Item5,10:N0} {rate.Item4 / 10.,11:P2}" 
    printfn $"1990      {population.Item6,10:N0} {rate.Item5 / 10.,11:P2}" 
    printfn $"2000      {population.Item7,10:N0} {rate.Item6 / 10.,11:P2}" 
    printfn $"""1950-2000 {"",10:N0} {rate.Item7 / 50.,11:P2}"""
    
    // 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 %
    
    Module Example
       Public Sub Main()
          ' Get population data for New York City, 1950-2000.
          Dim population = Tuple.Create("New York", 7891957, 7781984, 
                                        7894862, 7071639, 7322564, 8008278)
          Dim rate = ComputePopulationChange(population)      
          ' Display results.
          Console.WriteLine("Population Change, {0}, 1950-2000", population.Item1)
          Console.WriteLine()
          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)
       End Sub
       
          ' Compute rate of population change by decade and overall.
       Private Function ComputePopulationChange(data As Tuple(Of String, Integer, Integer, Integer, Integer, Integer, Integer)) _ 
               As Tuple(Of String, Double, Double, Double, Double, Double, Double)
          Dim rate = Tuple.Create( data.Item1, 
                           (data.Item3 - data.Item2)/data.Item2, 
                           (data.Item4 - data.Item3)/data.Item3, 
                           (data.Item5 - data.Item4)/data.Item4, 
                           (data.Item6 - data.Item5)/data.Item5,
                           (data.Item7 - data.Item6)/data.Item6,
                           (data.Item7 - data.Item2)/data.Item2 )
          Return rate
       End Function           
    End Module
    ' 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 %
    
  • Per restituire più valori da un metodo senza l'uso di out parametri (in C#) o ByRef parametri (in Visual Basic). Ad esempio, l'esempio precedente restituisce le statistiche calcolate, insieme al nome della città, in un Tuple<T1,T2,T3,T4,T5,T6,T7> oggetto.

  • Per passare più valori a un metodo tramite un singolo parametro. Ad esempio, il Thread.Start(Object) metodo ha un singolo parametro che consente di specificare un valore al metodo eseguito dal thread all'avvio. Se si specifica un Tuple<T1,T2,T3,T4,T5,T6,T7> oggetto come argomento del metodo, è possibile fornire la routine di avvio del thread con sette elementi di dati.

Costruttori

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

Inizializza una nuova istanza della classe Tuple<T1,T2,T3,T4,T5,T6,T7>.

Proprietà

Item1

Ottiene il valore del primo componente dell'oggetto Tuple<T1,T2,T3,T4,T5,T6,T7> corrente.

Item2

Ottiene il valore del secondo componente dell'oggetto Tuple<T1,T2,T3,T4,T5,T6,T7> corrente.

Item3

Ottiene il valore del terzo componente dell'oggetto Tuple<T1,T2,T3,T4,T5,T6,T7> corrente.

Item4

Ottiene il valore del quarto componente dell'oggetto Tuple<T1,T2,T3,T4,T5,T6,T7> corrente.

Item5

Ottiene il valore del quinto componente dell'oggetto Tuple<T1,T2,T3,T4,T5,T6,T7> corrente.

Item6

Ottiene il valore del sesto componente dell'oggetto Tuple<T1,T2,T3,T4,T5,T6,T7> corrente.

Item7

Ottiene il valore del settimo componente dell'oggetto Tuple<T1,T2,T3,T4,T5,T6,T7> corrente.

Metodi

Equals(Object)

Restituisce un valore che indica se l'oggetto Tuple<T1,T2,T3,T4,T5,T6,T7> corrente è uguale a un oggetto specificato.

GetHashCode()

Restituisce il codice hash per l'oggetto Tuple<T1,T2,T3,T4,T5,T6,T7> corrente.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta il valore di questa istanza di Tuple<T1,T2,T3,T4,T5,T6,T7>.

Implementazioni dell'interfaccia esplicita

IComparable.CompareTo(Object)

Confronta l'oggetto Tuple<T1,T2,T3,T4,T5,T6,T7> corrente con un oggetto specificato e restituisce un intero che indica se l'oggetto corrente precede, segue o si trova nella stessa posizione dell'oggetto specificato nell'ordinamento.

IStructuralComparable.CompareTo(Object, IComparer)

Confronta l'oggetto Tuple<T1,T2,T3,T4,T5,T6,T7> corrente con un oggetto specificato mediante un operatore di confronto specificato e restituisce un Integer che indica se l'oggetto corrente precede, segue o si trova nella stessa posizione dell'oggetto specificato all'interno dell'ordinamento.

IStructuralEquatable.Equals(Object, IEqualityComparer)

Restituisce un valore che indica se l'oggetto Tuple<T1,T2,T3,T4,T5,T6,T7> corrente è uguale a un oggetto specificato in base a un metodo di confronto specificato.

IStructuralEquatable.GetHashCode(IEqualityComparer)

Calcola il codice hash per l'oggetto Tuple<T1,T2,T3,T4,T5,T6,T7> corrente tramite un metodo di calcolo specificato.

ITuple.Item[Int32]

Ottiene il valore dell'elemento Tuple specificato.

ITuple.Length

Ottiene il numero di elementi in Tuple.

Metodi di estensione

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

Decostruisce una tupla con 7 elementi in variabili separate.

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

Converte un'istanza della classe Tuple in un'istanza della struttura ValueTuple.

Si applica a

Vedi anche