miércoles, 12 de julio de 2017

Tuplas en C#


Desde .net core, estoy estudiando un poco más C#

Vamos desde el principio, que es una tupla? Una tupla es una estructura de datos que especifica una secuencia de elementos.

Una tupla puede retornar un numero de elementos de diferente tipo sin expecificar una nueva estructura. Esto puede ser util para retornar diferentes elementos de defirente tipo o aceptarlos como parámetros.

System.Tuples es el namespace donde se pueden encontrar las tuplas en C#

Veamos un ejemplo:

class TupleExample
    {
        static void Main()
        {
            // Create three-item tuple.
            Tuple<int, string, bool> tuple =
                new Tuple<int, string, bool>(10, "csharpstar", true);
            // Access tuple properties.
            if (tuple.Item1 == 10)
            {
                Console.WriteLine(tuple.Item1);
            }
            if (tuple.Item2 == "easywcf")
            {
                Console.WriteLine(tuple.Item2);
            }
            if (tuple.Item3)
            {
                Console.WriteLine(tuple.Item3);
            }
        }
    }

Podemos no conoces el tipo de los elementos:

class TupleExample
    {
        static void Main()
        {
            // Use Tuple.Create static method.
            var tuple = Tuple.Create("Csharpstar", 10, true);

            // Test value of string.
            string value = tuple.Item1;
            if (value == "csharpstar")
            {
                Console.WriteLine(true);
            }

            // Test Item2 and Item3.
            Console.WriteLine(tuple.Item2 == 10);
            Console.WriteLine(!tuple.Item3);

            // Write string representation.
            Console.WriteLine(tuple);
        }
    }

Cuando utilizar tuplas?

Las tuplas se usan comúnmente de las siguientes maneras:

  • Para representar un solo conjunto de datos. Por ejemplo, una tupla puede representar un registro de base de datos, y sus componentes pueden representar campos individuales del registro.
  • Facilitar el acceso y la manipulación de un conjunto de datos.
  • Para devolver varios valores de un método sin utilizar parámetros de salida
  • Pasar valores múltiples a un método a través de un solo parámetro.