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, T5, T6, T7, TRest>

Rappresenta una tupla con n componenti, con n maggiore o uguale a 8.

System.Object
  System.Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>

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

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

T5

Tipo del quinto componente della tupla.

T6

Tipo del sesto componente della tupla.

T7

Tipo del settimo componente della tupla.

TRest

Qualsiasi oggetto Tuple generico che definisce i tipi dei componenti restanti della tupla.

Il tipo Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTuple<T1, T2, T3, T4, T5, T6, T7, TRest>Inizializza una nuova istanza della classe Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>.
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, T5, T6, T7, TRest> 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, T5, T6, T7, TRest> 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, T5, T6, T7, TRest> 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, T5, T6, T7, TRest> corrente.
Proprietà pubblicaSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreItem5Ottiene il valore del quinto componente dell'oggetto Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> corrente.
Proprietà pubblicaSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreItem6Ottiene il valore del sesto componente dell'oggetto Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> corrente.
Proprietà pubblicaSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreItem7Ottiene il valore del settimo componente dell'oggetto Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> corrente.
Proprietà pubblicaSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreRestOttiene i componenti restanti dell'oggetto Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> 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, T5, T6, T7, TRest> 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 StoreGetHashCodeCalcola il codice hash per l'oggetto Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> 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, T5, T6, T7, TRest>. (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, T5, T6, T7, TRest> 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, T5, T6, T7, TRest> 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, T5, T6, T7, TRest> 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, T5, T6, T7, TRest> 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, T5, T6, T7, TRest> rappresenta una tupla con n elementi che dispone di almeno otto componenti.

È possibile creare un'istanza di un oggetto Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> con esattamente otto componenti chiamando il metodo Tuple.Create statico. Nell'esempio seguente viene creata una tupla con 8 componenti (ottupla) che contiene i numeri primi minori di 20. Si noti come per determinare il tipo di ciascun componente viene utilizzata l'inferenza del tipo.


var primes = Tuple.Create(2, 3, 5, 7, 11, 13, 17, 19);
Console.WriteLine("Prime numbers less than 20: " + 
                  "{0}, {1}, {2}, {3}, {4}, {5}, {6}, and {7}",
                  primes.Item1, primes.Item2, primes.Item3, 
                  primes.Item5, primes.Item5, primes.Item6,
                  primes.Item7, primes.Rest.Item1);
// The example displays the following output:
//    Prime numbers less than 20: 2, 3, 5, 11, 11, 13, 17, and 19


È possibile creare anche un'istanza di un oggetto tupla di n elementi con almeno otto componenti chiamando il costruttore Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>. Nell'esempio seguente viene utilizzato il costruttore Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> per creare una tupla con 8 elementi equivalente alla tupla creata nell'esempio precedente.


var primes = new Tuple<Int32, Int32, Int32, Int32, Int32, Int32, Int32,  
             Tuple<Int32>> (2, 3, 5, 7, 11, 13, 17, new Tuple<Int32>(19));


NotaNota

Per creare una tupla di n elementi con almeno nove componenti, è necessario chiamare il costruttore Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>. I metodi factory statici della classe Tuple non supportano la creazione di oggetti Tuple con più di otto componenti.

Per creare un'istanza di una tupla con n elementi che dispone di almeno otto componenti con il costruttore Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>, viene fornito un oggetto Tuple generico come il parametro rest per definire i componenti compresi tra l'ottavo e l'ennesimo della tupla. Annidando oggetti Tuple generici in questo modo, è possibile creare una tupla per cui non esistono praticamente limiti al numero di componenti.

Nell'esempio seguente viene creato un oggetto con 17 tuple contenente i dati della popolazione della città di Detroit, Michigan, per ogni censimento nazionale dal 1860 al 2000. Il primo componente delle tupla rappresenta il nome della città. Il secondo componente è la data di inizio della serie di dati e il terzo componente è la popolazione alla data di inizio. Ogni componente successivo fornisce la popolazione a intervalli della decade. La tupla con 17 elementi viene creata annidando un oggetto Tuple<T1, T2, T3> all'interno di un oggetto Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>. ovvero l'oggetto Tuple<T1, T2, T3> viene fornito come valore del parametro rest nel costruttore della classe Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> Questo oggetto Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>, a sua volta, è annidato in un oggetto Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> esterno. ovvero l'oggetto Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> viene fornito come valore del parametro rest nel costruttore della classe dell'oggetto Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> esterno.


var from1980 = Tuple.Create(1203339, 1027974, 951270);
var from1910 = new Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>> 
    (465766, 993078, 1568622, 1623452, 1849568, 1670144, 1511462, from1980);
var population = new Tuple<string, int, int, int, int, int, int,
    Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>>> 
    ("Detroit", 1860, 45619, 79577, 116340, 205876, 285704, from1910);


È possibile recuperare il valore dei primi sette componenti della tupla tramite le proprietà delle istanze Item1, Item2, Item3, Item4, Item5, Item6e Item7 di sola lettura. Qualsiasi componente aggiuntivo è annidato e può essere recuperato dalla proprietà Rest. Nell'esempio precedente, le proprietà comprese tra Item1 e Item7 recuperano dal primo al settimo componente della tupla. I componenti compresi nell'intervallo tra l'ottavo e il quattordicesimo sono contenuti nella tupla annidata al secondo livello e vengono rappresentati dalle proprietà comprese tra Rest.Item1 e Rest.Item7. I componenti compresi nell'intervallo tra il quindicesimo e il diciassettesimo sono contenuti nella tupla annidata al terzo livello e vengono rappresentati dalle proprietà comprese tra Rest.Rest.Item1 e Rest.Rest.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.

  • 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 precedente vengono restituite le statistiche calcolate, insieme al nome della città, in un oggetto Tuple<T1, T2, T3, T4, T5, T6, T7>.

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