Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase Tuple<T1, T2, T3, T4>

 

Publicado: octubre de 2016

Representa una tupla de 4 o cuádruplo.

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

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

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

Parámetros de tipo

T1

El tipo del primer componente de la tupla.

T2

El tipo del segundo componente de la tupla.

T3

El tipo del tercer componente de la tupla.

T4

El tipo del cuarto componente de la tupla.

NombreDescripción
System_CAPS_pubmethodTuple<T1, T2, T3, T4>(T1, T2, T3, T4)

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

NombreDescripción
System_CAPS_pubpropertyItem1

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

System_CAPS_pubpropertyItem2

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

System_CAPS_pubpropertyItem3

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

System_CAPS_pubpropertyItem4

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

NombreDescripción
System_CAPS_pubmethodEquals(Object)

Devuelve un valor que indica si el actual Tuple<T1, T2, T3, T4> objeto es igual a un objeto especificado.(Invalida Object.Equals(Object)).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de que sea reclamado por la recolección de elementos no utilizados.(Heredado de Object).

System_CAPS_pubmethodGetHashCode()

Devuelve el código hash del objeto Tuple<T1, T2, T3, T4> actual.(Invalida Object.GetHashCode()).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_pubmethodToString()

Devuelve una cadena que representa el valor de este Tuple<T1, T2, T3, T4> instancia.(Invalida Object.ToString()).

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privmethodIStructuralComparable.CompareTo(Object, IComparer)

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

System_CAPS_pubinterfaceSystem_CAPS_privmethodIStructuralEquatable.Equals(Object, IEqualityComparer)

Devuelve un valor que indica si el actual Tuple<T1, T2, T3, T4> objeto es igual a un objeto especificado, basado en un método de comparación especificada.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIStructuralEquatable.GetHashCode(IEqualityComparer)

Calcula el código hash para la actual Tuple<T1, T2, T3, T4> objeto mediante un método de cálculo especificado.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIComparable.CompareTo(Object)

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

Una tupla es una estructura de datos que tiene un número específico y la secuencia de valores. La Tuple<T1, T2, T3, T4> clase representa una tupla de 4 o cuádruple, que es una tupla que tiene cuatro componentes.

Puede crear instancias de un Tuple<T1, T2, T3, T4> objeto mediante una llamada a la Tuple<T1, T2, T3, T4> constructor o el método estático Tuple.Create<T1, T2, T3, T4>(T1, T2, T3, T4) método. Puede recuperar el valor de los componentes de la tupla mediante el uso de solo lectura Item1, Item2, Item3, y Item4 propiedades de la instancia.

Tuplas se utilizan normalmente en cuatro formas distintas:

  • 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 sencillo a y la manipulación de un conjunto de datos. En el ejemplo siguiente se define una matriz de Tuple<T1, T2, T3, T4> objetos que contienen los nombres de lanzadores de béisbol, el número de entradas que lanzaron y el número de carreras ganadas (carreras que anotaron sin presentando errores) y llega a que le asignó. La matriz se pasa a la ComputeStatistics método, que calcula el promedio de carreras ganadas cada lanzador (el promedio de carreras cedidas en un juego de nueve entradas) y el número medio de aciertos falladas por entrada. El método también usa estos dos promedios para calcular una media de efectividad hipotética.

    using System;
    using System.Collections.Generic;
    
    public class Example
    {
       public static void Main()
       {
          Tuple<string, decimal, int, int>[] pitchers  =  
               { Tuple.Create("McHale, Joe", 240.1m, 221, 96),
                 Tuple.Create("Paul, Dave", 233.1m, 231, 84), 
                 Tuple.Create("Williams, Mike", 193.2m, 183, 86),
                 Tuple.Create("Blair, Jack", 168.1m, 146, 65), 
                 Tuple.Create("Henry, Walt", 140.1m, 96, 30),
                 Tuple.Create("Lee, Adam", 137.2m, 109, 45),
                 Tuple.Create("Rohr, Don", 101.0m, 110, 42) };
          Tuple<string, double, double, double>[] results= ComputeStatistics(pitchers);
    
          // Display the results.
          Console.WriteLine("{0,-20} {1,9} {2,11} {3,15}\n", 
                            "Pitcher", "ERA", "Hits/Inn.", "Effectiveness");
          foreach (var result in results)
             Console.WriteLine("{0,-20} {1,9:F2} {2,11:F2} {3,15:F2}",  
                            result.Item1, result.Item2, result.Item3, result.Item4);
       }
    
       private static Tuple<string, double, double, double>[] ComputeStatistics(Tuple<string, decimal, int, int>[] pitchers)
       {    
          var list = new List<Tuple<string, double, double, double>>();
          Tuple<string, double, double, double> result;
    
          foreach (var pitcher in pitchers)
          {
             // Decimal portion of innings pitched represents 1/3 of an inning
             double innings = (double) Math.Truncate(pitcher.Item2);
             innings = innings + (((double)pitcher.Item2 - innings) * .33);
    
             double ERA = pitcher.Item4/innings * 9;
             double hitsPerInning = pitcher.Item3/innings;
             double EI = (ERA * 2 + hitsPerInning * 9)/3;
             result = new Tuple<string, double, double, double>
                               (pitcher.Item1, ERA, hitsPerInning, EI);
             list.Add(result);
          }
          return list.ToArray();
       }
    }
    // The example displays the following output;
    //       Pitcher                    ERA   Hits/Inn.   Effectiveness
    //       
    //       McHale, Joe               3.60        0.92            5.16
    //       Paul, Dave                3.24        0.99            5.14
    //       Williams, Mike            4.01        0.95            5.52
    //       Blair, Jack               3.48        0.87            4.93
    //       Henry, Walt               1.93        0.69            3.34
    //       Lee, Adam                 2.95        0.80            4.36
    //       Rohr, Don                 3.74        1.09            5.76
    
  • 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 del lanzador, en una matriz de Tuple<T1, T2, T3, T4> objetos.

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

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 4.0
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 4.0
Windows Phone Silverlight
Disponible desde 8.0
Windows Phone
Disponible desde 8.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: