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>

Rappresenta una tupla con tre elementi, ovvero una terna.

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

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

[SerializableAttribute]
public class Tuple<T1, T2, T3> : 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.

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

  NomeDescrizione
Metodo pubblicoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTuple<T1, T2, T3>Inizializza una nuova istanza della classe Tuple<T1, T2, T3>.
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> 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> 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> 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> 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> 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>. (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> 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> 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> 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> 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> rappresenta una tupla con tre elementi (terna) ovvero una tupla con tre componenti.

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

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> in cui sono contenuti i nomi di studenti, i punteggi medi degli esami e il numero di esami sostenuti. La matrice viene passata al metodo ComputeStatistics che calcola la media e la deviazione standard dei punteggi del test.

    
    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)
    
    
    
  • 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 riepilogative relative al punteggio del test in un oggetto Tuple<T1, T2, T3>.

  • 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> come argomento del metodo, è possibile fornire la routine di avvio del thread con tre 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