Compartir vía


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

Definición

Representa una tupla n, donde n es 8 o superior.

generic <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename TRest>
public ref class Tuple : IComparable, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable
generic <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename TRest>
public ref class Tuple : IComparable, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable, System::Runtime::CompilerServices::ITuple
public class Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
public class Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple
[System.Serializable]
public class Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7, 'Rest> = class
    interface IStructuralComparable
    interface IStructuralEquatable
    interface IComparable
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7, 'Rest> = class
    interface IStructuralComparable
    interface IStructuralEquatable
    interface IComparable
    interface ITuple
[<System.Serializable>]
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7, 'Rest> = class
    interface IStructuralEquatable
    interface IStructuralComparable
    interface IComparable
[<System.Serializable>]
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7, 'Rest> = class
    interface IStructuralEquatable
    interface IStructuralComparable
    interface IComparable
    interface ITuple
Public Class Tuple(Of T1, T2, T3, T4, T5, T6, T7, TRest)
Implements IComparable, IStructuralComparable, IStructuralEquatable
Public Class Tuple(Of T1, T2, T3, T4, T5, T6, T7, TRest)
Implements IComparable, IStructuralComparable, IStructuralEquatable, ITuple

Parámetros de tipo

T1

Tipo del primer componente de la tupla.

T2

Tipo del segundo componente de la tupla.

T3

Tipo del tercer componente de la tupla.

T4

Tipo del cuarto componente de la tupla.

T5

Tipo del quinto componente de la tupla.

T6

Tipo del sexto componente de la tupla.

T7

Tipo del séptimo componente de la tupla.

TRest

Cualquier objeto Tuple genérico que defina los tipos de los componentes restantes de la tupla.

Herencia
Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>
Atributos
Implementaciones

Comentarios

Una tupla es una estructura de datos que tiene un número específico y una secuencia de valores. La Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> clase representa una tupla n que tiene ocho o más componentes.

Puede crear instancias de un Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objeto con exactamente ocho componentes llamando al método estático Tuple.Create . En el ejemplo siguiente se crea una tupla de 8 (octupla) que contiene números primos inferiores a 20. Tenga en cuenta que usa la inferencia de tipos para determinar el tipo de cada 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
open System

let primes = Tuple.Create(2, 3, 5, 7, 11, 13, 17, 19)
printfn $"Prime numbers less than 20: {primes.Item1}, {primes.Item2}, {primes.Item3}, {primes.Item4}, {primes.Item5}, {primes.Item6}, {primes.Item7}, and {primes.Rest.Item1}"
//    Prime numbers less than 20: 2, 3, 5, 7, 11, 13, 17, and 19
Dim 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

También puede crear una instancia de un objeto n-tupla con ocho o más componentes mediante una llamada al Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> constructor . En el ejemplo siguiente se usa el Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> constructor para crear una tupla de 8 equivalentes a la tupla creada en el ejemplo anterior.

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

Nota

Para crear una tupla n con nueve o más componentes, debe llamar al Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> constructor . Los métodos de fábrica estáticos de la Tuple clase no admiten la creación de objetos con más de Tuple ocho componentes.

Para crear una instancia de una tupla n que tenga ocho o más componentes con el Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> constructor, proporcione un objeto genérico Tuple como rest parámetro para definir los componentes octavo aésimo de la tupla. Al anidar objetos genéricos Tuple de esta manera, puede crear una tupla que no tenga ninguna limitación práctica en el número de sus componentes.

En el ejemplo siguiente se crea una tupla de 17 que contiene datos de población para la ciudad de Detroit, Michigan, para cada censo nacional de 1860 a 2000. El primer componente de la tupla es el nombre de la ciudad. El segundo componente es la fecha de inicio de la serie de datos y el tercer componente es el rellenado en la fecha de inicio. Cada componente subsiguiente proporciona la población a intervalos de década. La tupla de 17 se crea anidando un Tuple<T1,T2,T3> objeto dentro de un Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objeto . (Es decir, el Tuple<T1,T2,T3> objeto se proporciona como valor del rest parámetro en el constructor de clase Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> ). Este Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objeto, a su vez, está anidado en un objeto externo Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> . (Es decir, el Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objeto se proporciona como valor del rest parámetro en el constructor de clase del objeto externo Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> ).

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);
let from1980 = Tuple.Create(1203339, 1027974, 951270)
let from1910 = new Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>>(465766, 993078, 1568622, 1623452, 1849568, 1670144, 1511462, from1980)
let 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)
Dim from1980 = Tuple.Create(1203339, 1027974, 951270)
Dim from1910 As New Tuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, _
    Tuple(Of Integer, Integer, Integer)) _
    (465766, 993078, 1568622, 1623452, 1849568, 1670144, 1511462, from1980)
Dim population As New Tuple(Of String, Integer, Integer, Integer, Integer, Integer, Integer, _ 
    Tuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, Tuple(Of Integer, Integer, Integer))) _
    ("Detroit", 1860, 45619, 79577, 116340, 205876, 285704, from1910)

Puede recuperar el valor de los siete primeros componentes de la tupla mediante las propiedades de instancia de solo Item1lectura , , Item2, Item3Item4, Item5, Item6y Item7 . Todos los componentes adicionales están anidados y se pueden recuperar de la Rest propiedad . En el ejemplo anterior, las Item1 propiedades through Item7 recuperan el primero a los séptimos componentes de la tupla. Los componentes octavo a decimocuarto se encuentran en la tupla anidada en el segundo nivel, y se representan mediante las Rest.Item1 propiedades through Rest.Item7 . Los componentes decimoquinto a diecisiete están contenidos en la tupla que está anidada en el tercer nivel y se representan mediante las Rest.Rest.Item1 propiedades aunque Rest.Rest.Item3 .

Las tuplas se usan normalmente de cuatro maneras diferentes:

  • Para representar un único conjunto de datos. Por ejemplo, una tupla puede representar un registro de base de datos y sus componentes pueden representar campos individuales del registro.

  • Para facilitar el acceso y la manipulación de un conjunto de datos.

  • Para devolver varios valores de un método sin el uso de out parámetros (en C#) o ByRef parámetros (en Visual Basic). Por ejemplo, el ejemplo anterior devuelve sus estadísticas calculadas, junto con el nombre de la ciudad, en un Tuple<T1,T2,T3,T4,T5,T6,T7> objeto .

  • Para pasar varios valores a un método a través de un único parámetro. Por ejemplo, el Thread.Start(Object) método tiene un único parámetro que le permite proporcionar un valor al método que ejecuta el subproceso en el inicio. Si proporciona un Tuple<T1,T2,T3,T4,T5,T6,T7> objeto como argumento de método, puede proporcionar la rutina de inicio del subproceso con siete elementos de datos.

Constructores

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

Inicializa una nueva instancia de la clase Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>.

Propiedades

Item1

Obtiene el valor del primer componente del objeto Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> actual.

Item2

Obtiene el valor del segundo componente del objeto Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> actual.

Item3

Obtiene el valor del tercer componente del objeto Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> actual.

Item4

Obtiene el valor del cuarto componente del objeto Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> actual.

Item5

Obtiene el valor del quinto componente del objeto Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> actual.

Item6

Obtiene el valor del sexto componente del objeto Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> actual.

Item7

Obtiene el valor del séptimo componente del objeto Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> actual.

Rest

Obtiene los componentes restantes del objeto Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> actual.

Métodos

Equals(Object)

Devuelve un valor que indica si el objeto Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> actual es igual que el objeto especificado.

GetHashCode()

Calcula el código hash para el objeto Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> actual.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el valor de esta instancia de Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>.

Implementaciones de interfaz explícitas

IComparable.CompareTo(Object)

Compara el objeto Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> actual con un objeto especificado y devuelve un entero que indica si el objeto actual es anterior, posterior o está en la misma posición que el objeto especificado en el criterio de ordenación.

IStructuralComparable.CompareTo(Object, IComparer)

Compara el objeto Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> actual con un objeto especificado utilizando un comparador especificado y devuelve un entero que indica si el objeto actual precede o sigue al objeto especificado, o bien se encuentra en la misma posición que dicho objeto en el criterio de ordenación.

IStructuralEquatable.Equals(Object, IEqualityComparer)

Devuelve un valor que indica si el objeto Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> actual es igual que el objeto especificado según el método de comparación especificado.

IStructuralEquatable.GetHashCode(IEqualityComparer)

Calcula el código hash del objeto Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> actual usando el método de cálculo especificado.

ITuple.Item[Int32]

Obtiene el valor del elemento Tuple especificado.

ITuple.Length

Obtiene el número de elementos de Tuple.

Se aplica a

Consulte también