Tuple es un conjunto de clases genéricas para tener un conjunto de datos de diferentes tipos. Dicho de otro modo, podemos crear una variable t del tipo Tuple y almacenar datos numéricos, cadenas, etc.
El uso de Tuples es conveniente para regresar más de un tipo de dato desde un método.
La sintaxis de las clases son las siguientes:
public class Tuple <T1> public class Tuple <T1, T2> public class Tuple <T1, T2, T3> public class Tuple <T1, T2, T3, T4> public class Tuple <T1, T2, T3, T4, T5> public class Tuple <T1, T2, T3, T4, T5, T6> public class Tuple <T1, T2, T3, T4, T5, T6, T7> public class Tuple <T1, T2, T3, T4, T5, T6, T7, TRest>
Podemos instanciar una clase Tuple de tres maneras distintas:
/** Con el constructor */ var t = new Tuple<int, string> (123, "Hola Tuple"); /** Con el método estático */ var t = Tuple.Create(123, "Hola Tuple"); Tuple<int, string> t = Tuple.Create(123, "Hola Tuple");
Cada clase cuenta con propiedades de solo-lectura llamadas Item1, Item2 para cada parametro respectivamente. Estos nos servirán para obtener los valores:
Console.WriteLine(t.Item1); // 123 Console.WriteLine(t.Item2.ToUpper()); // Hola Tuple
El ejemplo completo queda de la siguiente manera:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SnippetsTricks
{
class Program
{
static void Main(string[] args)
{
var t = new Tuple<int, string>(123, "Hola Tuple");
//var t = Tuple.Create(123, "Hola Tuple");
//Tuple<int, string> t = Tuple.Create(123, "Hola Tuple");
Console.WriteLine(t.Item1);
Console.WriteLine(t.Item2.ToUpper());
Console.ReadLine();
}
}
}