C# | ValueTuple <T1,T2,T3,T4,T5,T6,T7,TRest> Estructura

La ValueTuple <T1,T2,T3,T4,T5,T6,T7,TRest> Struct se usa para crear una n-ValueTuple donde n = 8 o mayor que 8. Representa una tupla de valor que contiene los ocho o más de ocho elementos en ella. Proporciona implementación en tiempo de ejecución de tuplas de valor . Puede crear la instancia de ValueTuple <T1,T2,T3,T4,T5,T6,T7,TRest> Struct mediante ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>(T1, T2, T3, T4, T5, T6, T7, TRest) , o usando el método ValueTuple.Create o simplemente usando paréntesis() . Puede recuperar el valor de los elementos sin nombre de la tupla de valor utilizando la propiedad predeterminada, o se puede acceder directamente a los elementos con nombre con la ayuda de sus nombres.

Puntos importantes:

  • Implementa IStructuralComparable , IStructuralEquatable , IComparable, IComparable<ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>> , IEquatable<ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest> > , e ITuple interfaces.
  • Se define en el espacio de nombres del sistema.
  • También puede almacenar elementos duplicados.
  • Los campos son mutables. Entonces, puede cambiar el valor de ValueTuple <T1, T2, T3, T4, T5, T6, T7, TRest> .
  • Aquí, los miembros como Item1 , Item2 , Item3 , Item4 , Item5 , Item6 , Item7 , etc. son campos, no propiedad.
  • Es de tipo valor no de tipo referencia.
  • Representa múltiples datos en un solo conjunto de datos.
  • Permite pasar múltiples valores a un método con la ayuda de parámetros únicos.

Constructor

Constructor Descripción
ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>(T1, T2, T3, T4, T5, T6, T7, TRest) Inicializa una nueva instancia de ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>.

Campo

Campo Descripción
Objeto 1 Obtiene el valor del primer elemento de la instancia ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest> actual.
artículo2 Obtiene el valor del segundo elemento de la instancia ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest> actual. artículo3 Obtiene el valor del tercer elemento de la instancia ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest> actual. artículo4 Obtiene el valor del cuarto elemento de la instancia ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest> actual. artículo5 Obtiene el valor del quinto elemento de la instancia ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest> actual. artículo6 Obtiene el valor del sexto elemento de la instancia ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest> actual. artículo7 Obtiene el valor del séptimo elemento de la instancia ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest> actual. Resto Cualquier instancia de tupla de valor genérico que define los tipos de los elementos restantes de la tupla.

Ejemplo:

// C# program to illustrate how to
// access the element of ValueTuple<T1,
// T2, T3, T4, T5, T6, T7, TRest>
using System;
  
class GFG {
  
    // Main Method
    static public void Main()
    {
  
        // Creating a value tuple
        // Using Create method
        var Mylibrary = ValueTuple.Create(3456, "The Guide", "R. K. Narayan",
                             1958, "Philosophical novel", "English", "India", 
                      ValueTuple.Create("Swami and Friends", "The Dark Room", 
                                       "Mr. Sampath", "Grandmother's Tale"));
  
        // Display the element of the given value tuple
        Console.WriteLine("Book Details: ");
        Console.WriteLine("Book Id: {0}", Mylibrary.Item1);
        Console.WriteLine("Book Name: {0}", Mylibrary.Item2);
        Console.WriteLine("Author Name: {0}", Mylibrary.Item3);
        Console.WriteLine("Publication date: {0}", Mylibrary.Item4);
        Console.WriteLine("Gener: {0}", Mylibrary.Item5);
        Console.WriteLine("Language: {0}", Mylibrary.Item6);
        Console.WriteLine("Country: {0}", Mylibrary.Item7);
        Console.WriteLine("Other Novels: {0}", Mylibrary.Rest);
    }
}

Producción:

Book Details: 
Book Id: 3456
Book Name: The Guide
Author Name: R. K. Narayan
Publication date: 1958
Gener: Philosophical novel
Language: English
Country: India
Other Novels: ((Swami and Friends, The Dark Room, Mr. Sampath, Grandmother's Tale))

Métodos

Método Descripción
Comparar con (tupla de valor) Compara la instancia actual de ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest> con una instancia de ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest> especificada.
Es igual a (Objeto) Devuelve un valor que indica si la instancia actual de ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest> es igual a un objeto especificado.
Es igual a (tupla de valor) Devuelve un valor que indica si la instancia actual de ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest> es igual a una ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest> especificada. instancia.
Obtener código hash() Calcula el código hash para la instancia actual de ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>.
Enstringr() Devuelve una string que representa el valor de esta instancia de ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>.

Ejemplo:

// C# program to check the given 
// value tuples are equal or not
using System;
  
class GFG {
  
    // Main method
    static public void Main()
    {
  
        // Creating 8-ValueTuple
        // Using Create method
        var T1 = ValueTuple.Create(3, 2, 4, 5, 6, 7, 6, 10);
        var T2 = ValueTuple.Create(3, 2, 4, 5, 6, 7, 6, 1);
  
        // Check if both the value
        // tuples are equal or not
        if (T1.Equals(T2))
        {
            Console.WriteLine("Code is correct...!!");
        }
        else
        {
            Console.WriteLine("Incorrect Code...!!");
        }
    }
}

Producción:

Incorrect Code...!!

Referencia:

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 *