¿Cómo obtener los elementos de la ValueTuple anidada en C#?

ValueTuple es una estructura introducida en C# 7.0 que representa el tipo de valor Tuple. Le permite almacenar un conjunto de datos que contiene múltiples valores que pueden o no estar relacionados entre sí. Como sabemos, la propiedad Item<ElementNumber> se usa para obtener los elementos presentes en las tuplas de valor, pero esta propiedad solo funciona para siete elementos. Si desea obtener los elementos restantes, debe ir a la propiedad Rest
La propiedad Rest le permite obtener el elemento restante de la tupla de valor que no sean los siete elementos iniciales. O puede decir que se usa para acceder a los elementos de la tupla de valor anidado. 
Sintaxis: 
 

public TRest Rest;

Aquí, TRest es el valor de campo de una estructura ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>. 
Ejemplo 1:
 

CSharp

// C# program to illustrate how to get
// the eight element of value tuple
using System;
 
class GFG {
 
    // Main Method
    static public void Main()
    {
 
        // Creating a value tuple with eight elements
        var ValTpl = ValueTuple.Create("Methods", "Method Hiding",
                        "Optional Parameters", "Anonymous Method",
                              "Partial Methods", "Local Function",
                                      "Delegates", "Destructors");
 
        Console.WriteLine("C# Topics: ");
 
        // Accessing the first element of 8-ValueTuple
        // Using Item property
        Console.WriteLine(ValTpl.Item1);
 
        // Accessing the second element of 8-ValueTuple
        // Using Item property
        Console.WriteLine(ValTpl.Item2);
 
        // Accessing the third element of 8-ValueTuple
        // Using Item property
        Console.WriteLine(ValTpl.Item3);
 
        // Accessing the fourth element of 8-ValueTuple
        // Using Item property
        Console.WriteLine(ValTpl.Item4);
 
        // Accessing the fifth element of 8-ValueTuple
        // Using Item property
        Console.WriteLine(ValTpl.Item5);
 
        // Accessing the sixth element of 8-ValueTuple
        // Using Item property
        Console.WriteLine(ValTpl.Item6);
 
        // Accessing the seventh element of 8-ValueTuple
        // Using Item property
        Console.WriteLine(ValTpl.Item7);
 
        // Accessing the eighth element of 8-ValueTuple
        // Using Rest property
        Console.WriteLine(ValTpl.Rest);
    }
}
Producción: 

C# Topics: 
Methods
Method Hiding
Optional Parameters
Anonymous Method
Partial Methods
Local Function
Delegates
(Destructors)

 

Ejemplo 2:
 

CSharp

// C# program to get the
// elements of nested value tuple
using System;
 
class GFG {
 
    // Main method
    static public void Main()
    {
 
        // Creating a nested value tuple
        // Using ValueTuple<T1, T2, T3, T4, T5, T6,
        // T7, TRest>(T1, T2, T3, T4, T5, T6, T7,
        // TRest rest) constructor
        var MyValTpl = ValueTuple.Create(23456, "Anu", "CSE", "14-4-1992",
                   27, 2010, 3456781234, ValueTuple.Create("Java", "C#"));
 
        // Accessing the elements of the value tuple
        Console.WriteLine("Employee Details:");
        Console.WriteLine("Id: {0}", MyValTpl.Item1);
        Console.WriteLine("Name: {0}", MyValTpl.Item2);
        Console.WriteLine("Branch: {0}", MyValTpl.Item3);
        Console.WriteLine("DOB: {0}", MyValTpl.Item4);
        Console.WriteLine("Age: {0}", MyValTpl.Item5);
        Console.WriteLine("Passing Year: {0}", MyValTpl.Item6);
        Console.WriteLine("Phone Number: {0}", MyValTpl.Item7);
        Console.WriteLine("Programming Language: {0}", MyValTpl.Rest);
    }
}
Producción: 

Employee Details:
Id: 23456
Name: Anu
Branch: CSE
DOB: 14-4-1992
Age: 27
Passing Year: 2010
Phone Number: 3456781234
Programming Language: ((Java, C#))

 

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *