La Clase Generica Tuple


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();
		}
	}
}

Posted in

Leave a Reply