Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés
Esta documentación está archivada y no tiene mantenimiento.

Tuple<T1, T2, T3> (Clase)

Representa una tupla de 3 o triple.

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

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)

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

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.

El tipo Tuple<T1, T2, T3> expone los siguientes miembros.

  NombreDescripción
Método públicoDd387150.PortableClassLibrary(es-es,VS.100).gifTuple<T1, T2, T3>Inicializa una nueva instancia de la clase Tuple<T1, T2, T3>.
Arriba

  NombreDescripción
Propiedad públicaDd387150.PortableClassLibrary(es-es,VS.100).gifItem1Obtiene el valor del primer componente del objeto Tuple<T1, T2, T3> actual.
Propiedad públicaDd387150.PortableClassLibrary(es-es,VS.100).gifItem2Obtiene el valor del segundo componente del objeto Tuple<T1, T2, T3> actual.
Propiedad públicaDd387150.PortableClassLibrary(es-es,VS.100).gifItem3Obtiene el valor del tercer componente del objeto Tuple<T1, T2, T3> actual.
Arriba

  NombreDescripción
Método públicoDd387150.PortableClassLibrary(es-es,VS.100).gifEqualsDevuelve un valor que indica si el objeto Tuple<T1, T2, T3> actual es igual a un objeto especificado. (Invalida a Object.Equals(Object)).
Método protegidoDd387150.PortableClassLibrary(es-es,VS.100).gifFinalizePermite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método públicoDd387150.PortableClassLibrary(es-es,VS.100).gifGetHashCodeDevuelve el código hash del objeto Tuple<T1, T2, T3> actual. (Invalida a Object.GetHashCode()).
Método públicoDd387150.PortableClassLibrary(es-es,VS.100).gifGetTypeObtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método protegidoDd387150.PortableClassLibrary(es-es,VS.100).gifMemberwiseCloneCrea una copia superficial del objeto Object actual. (Se hereda de Object).
Método públicoDd387150.PortableClassLibrary(es-es,VS.100).gifToStringDevuelve una cadena que representa el valor de esta instancia de Tuple<T1, T2, T3>. (Invalida a Object.ToString()).
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privadoIComparable.CompareToCompara el objeto Tuple<T1, T2, T3> actual con un objeto 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.
Implementación explícita de interfacesMétodo privadoIStructuralComparable.CompareToCompara el objeto Tuple<T1, T2, T3> actual con un objeto especificado usando un comparador especificado y devuelve un entero que indica si el objeto actual se encuentra delante, detrás o en la misma posición que el objeto especificado en el criterio de ordenación.
Implementación explícita de interfacesMétodo privadoIStructuralEquatable.EqualsDevuelve un valor que indica si el objeto Tuple<T1, T2, T3> actual es igual a un objeto especificado basándose en un método de comparación especificado.
Implementación explícita de interfacesMétodo privadoIStructuralEquatable.GetHashCodeCalcula el código hash para el objeto Tuple<T1, T2, T3> el actual utilizando un método de cálculo especificado.
Arriba

Una tupla es una estructura de datos que tiene un número y una secuencia de valores concretos. La clase Tuple<T1, T2, T3> representa una tupla de 3, o triple, que es una tupla que tiene tres componentes.

Puede crear instancias de un objeto Tuple<T1, T2, T3> llamando al constructor Tuple<T1, T2, T3> o al método estático Tuple.Create<T1, T2, T3>(T1, T2, T3). Puede recuperar el valor de los componentes de la tupla usando las propiedades de instancia de solo lectura Item1, Item2 y Item3.

Las tuplas se utilizan 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 proporcionar un acceso, y manipulación, fácil de un conjunto de datos. En el siguiente ejemplo se define una matriz de objetos Tuple<T1, T2, T3> que contiene los nombres de los alumnos, sus puntuaciones medias de las pruebas y el número de pruebas realizadas. La matriz se pasa al método ComputeStatistics, que calcula la media y la desviación estándar de las puntuaciones de las pruebas.

    
    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)
    
    
    
  • Para devolver varios valores de un método sin el uso de parámetros out (en C#) o parámetros ByRef (en Visual Basic). Por ejemplo, el ejemplo anterior devuelve sus estadísticas de puntuaciones de la prueba de resumen en un objeto Tuple<T1, T2, T3>.

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

.NET Framework

Compatible con: 4

.NET Framework Client Profile

Compatible con: 4

Compatible con:

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Mostrar: