Open In App

C# | Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> Class

Improve
Improve
Like Article
Like
Save
Share
Report

The Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> class is used to create an n-tuple where n = 8 or greater than 8. It represents a tuple that contains the eight or more than eight elements in it. You can instantiate a Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object by calling either the Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>(T1, T2, T3, T4, T5, T6, T7, TRest) constructor or by the static Tuple.Create method. You can retrieve the value of the tuple’s elements by using the read-only Item1, Item2, Item3, Item4, Item5, Item6, Item7 and Rest instance property. 

Important Points:

  • It implements IStructuralComparable, IStructuralEquatable, and IComparable interfaces.
  • It defined under System namespace.
  • You can create more than eight-element in a tuple with the help of nesting. You can create a nested tuple in the place of Rest parameter in Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>.
  • It represents multiple data into a single data set.
  • It allows us to create, manipulate, and access data set.
  • It returns multiple values from a method without using out parameters.
  • It allows to pass multiple values to a method with the help of single parameters.
  • It can also store duplicate elements.
     

Constructor 

Constructor Description
Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>(T1, T2, T3, T4, T5, T6, T7, TRest) Initializes a new instance of the Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> class.

Property

Property Description
Item1 Gets the value of the Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object’s first element.
Item2 Gets the value of the current Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object’s second element.
Item3 Gets the value of the current Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object’s third element.
Item4 Gets the value of the current Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object’s fourth element.
Item5 Gets the value of the current Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object’s fifth element.
Item6 Gets the value of the current Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object’s sixth element.
Item7 Gets the value of the current Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object’s seventh element.
Rest Gets the current Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object’s remaining elements.

Example: 

C#




// C# program to illustrate the constructor
// and property of Tuple<T1, T2, T3, T4,
// T5, T6, T7, TRest> Class
using System;
 
class GFG {
 
    // Main Method
    static public void Main()
    {
        // Creating 8-Tuple
        // Using Tuple<T1, T2, T3, T4, T5, T6, T7,
        // TRest>(T1, T2, T3, T4, T5, T6, T7,
        // TRest) constructor
        Tuple<int, int, int, string, int, string, int, Tuple<int, int>> mytuple = new Tuple<int,
                   int, int, string, int, string, int, Tuple<int, int> >(79, 34, 67, "Geeks", 44,
                                               "GeeksforGeeks", 66, new Tuple<int, int>(89, 77));
 
       // Accessing the values
        Console.WriteLine("Value of the First Component: " + mytuple.Item1);
        Console.WriteLine("Value of the Second Component: " + mytuple.Item2);
        Console.WriteLine("Value of the Third Component: " + mytuple.Item3);
        Console.WriteLine("Value of the Fourth Component: " + mytuple.Item4);
        Console.WriteLine("Value of the Fifth Component: " + mytuple.Item5);
        Console.WriteLine("Value of the Sixth Component: " + mytuple.Item6);
        Console.WriteLine("Value of the Seventh Component: " + mytuple.Item7);
        Console.WriteLine("Value of the Eighth Component: " + mytuple.Rest);
 
    }
}


Output: 

Value of the First Component: 79
Value of the Second Component: 34
Value of the Third Component: 67
Value of the Fourth Component: Geeks
Value of the Fifth Component: 44
Value of the Sixth Component: GeeksforGeeks
Value of the Seventh Component: 66
Value of the Eighth Component: (89, 77)

 

Methods

Method Description
Equals(Object) Returns a value that indicates whether the current Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object is equal to a specified object.
GetHashCode() Returns the hash code for the current Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object.
GetType() Gets the Type of the current instance.
MemberwiseClone() Creates a shallow copy of the current Object.
ToString() Returns a string that represents the value of this Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> instance.

Example:

C#




// C# program to check whether the
// given tuples are equal or not
using System;
 
class GFG {
 
    // Main method
    static public void Main()
    {
 
        // Creating 8-Tuple
        // Using Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>(T1,
        // T2, T3, T4, T5, T6, T7, TRest) constructor
        Tuple<int, int, int, int, int, int, int, Tuple<string> > mytuple1 = new Tuple<int,
                                 int, int, int, int, int, int, Tuple<string> >(20, 40, 90,
                                       89, 33, 66, 87, new Tuple<string>("GeeksforGeeks"));
 
        Tuple<int, int, int, int, int, int, int, Tuple<string> > mytuple2 = new Tuple<int,
                                 int, int, int, int, int, int, Tuple<string> >(20, 40, 90,
                                      89, 33, 66, 87, new Tuple<string>("GeeksforGeeks"));
 
        // Using Equals method
        if (mytuple1.Equals(mytuple2))
        {
            Console.WriteLine("Tuple Matched.");
        }
 
        else
        {
            Console.WriteLine("Tuple Not Matched.");
        }
    }
}


Output: 

Tuple Matched.

 

Reference: 

 



Last Updated : 24 Nov, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads