Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

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

 

Data di pubblicazione: ottobre 2016

Rappresenta un n- tupla, in cui n è 8 o versione successiva.

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

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

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

Parametri tipo

T1

Tipo del primo componente della tupla.

T2

Tipo del secondo componente della tupla.

T3

Il tipo del terzo componente della tupla.

T4

Il tipo del quarto componente della tupla.

T5

Il tipo del quinto componente della tupla.

T6

Il tipo del sesto componente della tupla.

T7

Il tipo del settimo componente della tupla.

TRest

Qualsiasi generico Tuple componenti restanti dell'oggetto che definisce i tipi di tupla.

NomeDescrizione
System_CAPS_pubmethodTuple<T1, T2, T3, T4, T5, T6, T7, TRest>(T1, T2, T3, T4, T5, T6, T7, TRest)

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

NomeDescrizione
System_CAPS_pubpropertyItem1

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

System_CAPS_pubpropertyItem2

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

System_CAPS_pubpropertyItem3

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

System_CAPS_pubpropertyItem4

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

System_CAPS_pubpropertyItem5

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

System_CAPS_pubpropertyItem6

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

System_CAPS_pubpropertyItem7

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

System_CAPS_pubpropertyRest

Ottiene l'oggetto corrente Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> componenti restanti dell'oggetto.

NomeDescrizione
System_CAPS_pubmethodEquals(Object)

Restituisce un valore che indica se l'oggetto corrente Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> oggetto è uguale all'oggetto specificato.(Esegue l'override di Object.Equals(Object).)

System_CAPS_protmethodFinalize()

Consente a un oggetto di effettuare un tentativo di liberare risorse ed eseguire altre operazioni di pulizia prima che venga recuperato da Garbage Collection.(Ereditato da Object.)

System_CAPS_pubmethodGetHashCode()

Calcola il codice hash per l'oggetto Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> oggetto.(Esegue l'override di Object.GetHashCode().)

System_CAPS_pubmethodGetType()

Ottiene l'oggetto Type dell'istanza corrente.(Ereditato da Object.)

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.(Ereditato da Object.)

System_CAPS_pubmethodToString()

Restituisce una stringa che rappresenta il valore di questo Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> istanza.(Esegue l'override di Object.ToString().)

NomeDescrizione
System_CAPS_pubinterfaceSystem_CAPS_privmethodIStructuralComparable.CompareTo(Object, IComparer)

Confronta l'oggetto Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> oggetto a un oggetto specificato utilizzando un operatore di confronto specificato e restituisce un intero che indica se l'oggetto corrente è prima, dopo o nella stessa posizione dell'oggetto specificato nell'ordinamento.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIStructuralEquatable.Equals(Object, IEqualityComparer)

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

System_CAPS_pubinterfaceSystem_CAPS_privmethodIStructuralEquatable.GetHashCode(IEqualityComparer)

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

System_CAPS_pubinterfaceSystem_CAPS_privmethodIComparable.CompareTo(Object)

Confronta l'oggetto Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> 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.

Una tupla è una struttura di dati con un numero specifico e la sequenza di valori. Il Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> classe rappresenta un n- tupla con otto o più componenti.

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

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.Item4, primes.Item5, primes.Item6,
                  primes.Item7, primes.Rest.Item1);
// The example displays the following output:
//    Prime numbers less than 20: 2, 3, 5, 7, 11, 13, 17, and 19

È anche possibile creare un oggetto tupla con n elementi con otto o più componenti chiamando il Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> costruttore. L'esempio seguente usa il Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> costruttore per creare una tupla con 8 elementi che è 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));
System_CAPS_noteNota

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

Per creare un'istanza di una tupla con n elementi che dispone di otto o più componenti con la Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> costruttore, si fornisce un oggetto generico Tuple oggetto come il rest parametro per definire l'ottavo tramite ncomponente della tupla. Annidando generico Tuple oggetti in questo modo, è possibile creare una tupla che non esistono limiti pratici per il numero dei relativi componenti.

L'esempio seguente crea una tupla di 17 che contiene i dati della popolazione per la città di Detroit, Michigan, per ogni censimento nazionale dal 1860 al 2000. Il primo componente della tupla è 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 il popolamento a intervalli di dieci anni. Viene creata la tupla di 17 annidando un Tuple<T1, T2, T3> oggetto all'interno di un Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> oggetto. (Che è, il Tuple<T1, T2, T3> fornito come valore dell'oggetto di rest parametro il Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> costruttore della classe.) Questo Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> oggetto, a sua volta, annidato in un outer Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> oggetto. (Ovvero, il Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> fornito come valore dell'oggetto il rest parametro esterna Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> costruttore della classe dell'oggetto.)

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 di primi sette componenti della tupla utilizzando la proprietà di sola lettura Item1, Item2, Item3, Item4, Item5, Item6, e Item7 delle proprietà dell'istanza. Tutti i componenti aggiuntivi sono nidificati e può essere recuperati dal Rest proprietà. Nell'esempio precedente, il Item1 tramite Item7 recuperano dal primo al settimo componente della tupla. L'ottavo mediante i componenti di quattordicesimo sono contenuti nella tupla annidata al secondo livello e sono rappresentate dal Rest.Item1 tramite Rest.Item7 proprietà. I componenti diciassettesimo quindicesimo e sono contenuti nella tupla annidata al terzo livello e sono rappresentati di Rest.Rest.Item1 se Rest.Rest.Item3 proprietà.

Le tuple sono comunemente utilizzate in quattro modi diversi:

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

  • Per fornire facile accesso e la manipolazione di un set di dati.

  • Per restituire più valori da un metodo senza l'utilizzo di out parametri (c#) o ByRef parametri (in Visual Basic). Ad esempio, l'esempio precedente restituisce le statistiche calcolate, insieme al nome di 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) dispone di un singolo parametro che consente di fornire un valore al metodo eseguito dal thread all'avvio. Se si fornisce un Tuple<T1, T2, T3, T4, T5, T6, T7> dell'oggetto come argomento del metodo, è possibile fornire la routine di avvio del thread con sette elementi di dati.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 4.0
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 4.0
Windows Phone Silverlight
Disponibile da 8.0
Windows Phone
Disponibile da 8.1

I membri statici pubblici ( Condiviso in Visual Basic) di questo tipo è thread safe. Non tutti i membri di istanza sono garantiti come thread safe.

Torna all'inizio
Mostra: