Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Classe Tuple<T1, T2, T3, T4>

Rappresenta una tupla con quattro elementi, ovvero una quadrupla.

System.Object
  System.Tuple<T1, T2, T3, T4>

Spazio dei nomi:  System
Assembly:  mscorlib (in mscorlib.dll)

[SerializableAttribute]
public class Tuple<T1, T2, T3, T4> : IStructuralEquatable, 
	IStructuralComparable, IComparable

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.

Il tipo Tuple<T1, T2, T3, T4> espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTuple<T1, T2, T3, T4>Inizializza una nuova istanza della classe Tuple<T1, T2, T3, T4>.
In alto

  NomeDescrizione
Proprietà pubblicaSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreItem1Ottiene il valore del primo componente dell'oggetto Tuple<T1, T2, T3, T4> corrente.
Proprietà pubblicaSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreItem2Ottiene il valore del secondo componente dell'oggetto Tuple<T1, T2, T3, T4> corrente.
Proprietà pubblicaSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreItem3Ottiene il valore del terzo componente dell'oggetto Tuple<T1, T2, T3, T4> corrente.
Proprietà pubblicaSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreItem4Ottiene il valore del quarto componente dell'oggetto Tuple<T1, T2, T3, T4> corrente.
In alto

  NomeDescrizione
Metodo pubblicoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreEqualsRestituisce un valore che indica se l'oggetto Tuple<T1, T2, T3, T4> corrente è uguale a un oggetto specificato. (Esegue l'override di Object.Equals(Object)).
Metodo protettoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreFinalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblicoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGetHashCodeRestituisce il codice hash per l'oggetto Tuple<T1, T2, T3, T4> corrente. (Esegue l'override di Object.GetHashCode()).
Metodo pubblicoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo protettoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreMemberwiseClone Crea una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblicoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreToStringRestituisce una stringa che rappresenta il valore di questa istanza di Tuple<T1, T2, T3, T4>. (Esegue l'override di Object.ToString()).
In alto

  NomeDescrizione
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreIComparable.CompareToConfronta l'oggetto Tuple<T1, T2, T3, T4> corrente con un oggetto 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.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreIStructuralComparable.CompareToConfronta l'oggetto Tuple<T1, T2, T3, T4> 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.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreIStructuralEquatable.EqualsRestituisce un valore che indica se l'oggetto Tuple<T1, T2, T3, T4> corrente è uguale a un oggetto specificato in base a un metodo di confronto specificato.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreIStructuralEquatable.GetHashCodeCalcola il codice hash per l'oggetto Tuple<T1, T2, T3, T4> corrente tramite un metodo di calcolo specificato.
In alto

Una tupla è una struttura dei dati che dispone di un numero specifico e una sequenza di valori. La classe Tuple<T1, T2, T3, T4> rappresenta una tupla con quattro componenti o quadrupla.

È possibile creare un'istanza di un oggetto Tuple<T1, T2, T3, T4> chiamando il costruttore Tuple<T1, T2, T3, T4> o il metodo Tuple.Create<T1, T2, T3, T4>(T1, T2, T3, T4) statico. È possibile recuperare il valore dei componenti della tupla attraverso le proprietà di sola lettura dell'istanza Item1, Item2, Item3e Item4.

Le tuple sono comunemente utilizzate in quattro modalità diverse:

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

  • Per accedere e manipolare semplicemente un set di dati. Nell'esempio seguente viene definita una matrice di oggetti Tuple<T1, T2, T3, T4> che contengono i nomi di lanciatori di baseball, il numero di inning, il numero di punti ottenuti (senza errori) e quello dei lanci persi. La matrice viene passata al metodo ComputeStatistics che calcola la media dei punti di ogni lanciatore (il numero medio di punti persi in un gioco di nove inning) e il numero medio di lanci persi per inning. Il metodo utilizza inoltre queste due medie per calcolare una media di efficacia ipotetica.

    
    using System;
    using System.Collections.Generic;
    
    public class Example
    {
       public static void Main()
       {
          Tuple<string, decimal, int, int>[] pitchers  =  
               { Tuple.Create("McHale, Joe", 240.1m, 221, 96),
                 Tuple.Create("Paul, Dave", 233.1m, 231, 84), 
                 Tuple.Create("Williams, Mike", 193.2m, 183, 86),
                 Tuple.Create("Blair, Jack", 168.1m, 146, 65), 
                 Tuple.Create("Henry, Walt", 140.1m, 96, 30),
                 Tuple.Create("Lee, Adam", 137.2m, 109, 45),
                 Tuple.Create("Rohr, Don", 101.0m, 110, 42) };
          Tuple<string, double, double, double>[] results= ComputeStatistics(pitchers);
    
          // Display the results.
          Console.WriteLine("{0,-20} {1,9} {2,11} {3,15}\n", 
                            "Pitcher", "ERA", "Hits/Inn.", "Effectiveness");
          foreach (var result in results)
             Console.WriteLine("{0,-20} {1,9:F2} {2,11:F2} {3,15:F2}",  
                            result.Item1, result.Item2, result.Item3, result.Item4);
       }
    
       private static Tuple<string, double, double, double>[] ComputeStatistics(Tuple<string, decimal, int, int>[] pitchers)
       {    
          var list = new List<Tuple<string, double, double, double>>();
          Tuple<string, double, double, double> result;
    
          foreach (var pitcher in pitchers)
          {
             // Decimal portion of innings pitched represents 1/3 of an inning
             double innings = (double) Math.Truncate(pitcher.Item2);
             innings = innings + (((double)pitcher.Item2 - innings) * .33);
    
             double ERA = pitcher.Item4/innings * 9;
             double hitsPerInning = pitcher.Item3/innings;
             double EI = (ERA * 2 + hitsPerInning * 9)/3;
             result = new Tuple<string, double, double, double>
                               (pitcher.Item1, ERA, hitsPerInning, EI);
             list.Add(result);
          }
          return list.ToArray();
       }
    }
    // The example displays the following output;
    //       Pitcher                    ERA   Hits/Inn.   Effectiveness
    //       
    //       McHale, Joe               3.60        0.92            5.16
    //       Paul, Dave                3.24        0.99            5.14
    //       Williams, Mike            4.01        0.95            5.52
    //       Blair, Jack               3.48        0.87            4.93
    //       Henry, Walt               1.93        0.69            3.34
    //       Lee, Adam                 2.95        0.80            4.36
    //       Rohr, Don                 3.74        1.09            5.76
    
    
    
  • Per restituire più valori da un metodo senza l'utilizzo di parametri out (in C#) o parametri ByRef (in Visual Basic). Ad esempio, l'esempio precedente restituisce le statistiche calcolate, insieme al nome del lanciatore, in una matrice di oggetti Tuple<T1, T2, T3, T4>.

  • Per passare più valori a un metodo tramite un solo parametro. Ad esempio il metodo Thread.Start(Object) dispone di un solo parametro che consente di fornire un valore al metodo che il thread esegue all'avvio. Se si fornisce un oggetto Tuple<T1, T2, T3, T4> come argomento del metodo, è possibile fornire la routine di avvio del thread con quattro elementi di dati.

.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Supportato in: 4

Libreria di classi portabile

Supportato in: Libreria di classi portabile

.NET per applicazioni Windows Store

Supportato in: Windows 8

.NET per applicazioni Windows Phone

Supportato in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft