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>

Rappresenta una tupla con due elementi, ovvero una coppia.

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

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

Parametri di tipo

T1

Tipo del primo componente della tupla.

T2

Tipo del secondo componente della tupla.

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

  NomeDescrizione
Metodo pubblicoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTuple<T1, T2>Inizializza una nuova istanza della classe Tuple<T1, T2>.
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> corrente.
Proprietà pubblicaSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreItem2Ottiene il valore del secondo componente dell'oggetto Tuple<T1, T2> 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> 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> 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>. (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> 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> 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> 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> 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> rappresenta una tupla con due elementi (coppia) ovvero una tupla con due componenti. Una tupla con due componenti è simile a una struttura KeyValuePair<TKey, TValue>.

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

Le tuple sono comunemente utilizzate in quattro modalità diverse:

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

  • Per accedere e manipolare semplicemente un set di dati. Nell'esempio seguente viene definita una matrice di oggetti Tuple<T1, T2> in cui sono contenuti i nomi di studenti e i relativi punteggi degli esami. Scorre quindi la matrice per calcolare il punteggio medio del test.

    
    using System;
    
    public class Example
    {
       public static void Main()
       {
          Tuple<string, Nullable<int>>[] scores = 
                        { new Tuple<string, Nullable<int>>("Jack", 78),
                          new Tuple<string, Nullable<int>>("Abbey", 92), 
                          new Tuple<string, Nullable<int>>("Dave", 88),
                          new Tuple<string, Nullable<int>>("Sam", 91), 
                          new Tuple<string, Nullable<int>>("Ed", null),
                          new Tuple<string, Nullable<int>>("Penelope", 82),
                          new Tuple<string, Nullable<int>>("Linda", 99),
                          new Tuple<string, Nullable<int>>("Judith", 84) };
          int number;
          double mean = ComputeMean(scores, out number);
          Console.WriteLine("Average test score: {0:N2} (n={1})", mean, number);
       }
    
       private static double ComputeMean(Tuple<string, Nullable<int>>[] scores, out int n) 
       {
          n = 0;      
          int sum = 0;
          foreach (var score in scores)
          {
             if (score.Item2.HasValue)
             { 
                n += 1;
                sum += score.Item2.Value;
             }
          }     
          if (n > 0)
             return sum / (double) n;
          else
             return 0;
       }
    }
    // The example displays the following output:
    //       Average test score: 88 (n=7)
    
    
    
  • Per restituire più valori da un metodo senza l'utilizzo di parametri out (in C#) o parametri ByRef (in Visual Basic). Ad esempio, nell'esempio seguente viene utilizzato un oggetto Tuple<T1, T2> per restituire il quoziente e il resto derivante dalla divisione di numeri interi.

    
    using System;
    
    public class Class1
    {
       public static void Main()
       {
          int dividend, divisor;
          Tuple<int, int> result;
    
          dividend = 136945; divisor = 178;
          result = IntegerDivide(dividend, divisor);
          if (result != null)
             Console.WriteLine(@"{0} \ {1} = {2}, remainder {3}", 
                               dividend, divisor, result.Item1, result.Item2);
          else
             Console.WriteLine(@"{0} \ {1} = <Error>", dividend, divisor);
    
          dividend = Int32.MaxValue; divisor = -2073;
          result = IntegerDivide(dividend, divisor);
          if (result != null)
             Console.WriteLine(@"{0} \ {1} = {2}, remainder {3}", 
                               dividend, divisor, result.Item1, result.Item2);
          else
             Console.WriteLine(@"{0} \ {1} = <Error>", dividend, divisor);
       }
    
       private static Tuple<int, int> IntegerDivide(int dividend, int divisor)
       {
          try {
             int remainder;
             int quotient = Math.DivRem(dividend, divisor, out remainder);
             return new Tuple<int, int>(quotient, remainder);
          }   
          catch (DivideByZeroException) {
             return null;
          }      
       }
    }
    // The example displays the following output:
    //       136945 \ 178 = 769, remainder 63
    //       2147483647 \ -2073 = -1035930, remainder 757
    
    
    
  • 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> come argomento del metodo, è possibile fornire la routine di avvio del thread con due 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