c# tuple

C# tuple

 

C# tuple is a data structure that is used to store sequence of elements. It can be used where you want to have a data structure to hold an object with properties, but you don't want to create a separate type for it. The Tuple<T> class was introduced in .NET Framework 4.0.

 

C# Tuple Example

 

using System;  
namespace USINGCSHARP
{  
    class TupleEx  
    {  
        public static void Main(string[] args)  
        {  
            // Creating Tuple of three values  
            var book = new Tuple<string, string, double>("C# in tuple", "Delhi", 1000);  
           
            Console.WriteLine("Name"  + book.Item1);  
            Console.WriteLine("City" + book.Item2);  
            Console.WriteLine("Price  "  + book.Item3);  
        }  
    }  
}  


Output

Title C# in tuple

Author Delhi

Price 1000



In the following example, we are using create method.

 

using System;  
namespace usingcsharp
{  
    class TupleEx 
    {  
        public static void Main(string[] args)  
        {              
            var tp = Tuple.Create("C# in tuple", "Delhi", 1000);  
            Console.WriteLine("Name " + tp.Item1);  
            Console.WriteLine("City " + tp.Item2);  
            Console.WriteLine("Price  " + tp.Item3);  
        }  
    }  
}  

 

Example: Nested Tuple

 

var numbers = Tuple.Create(1, 2, 3, 4, 5, 6, 7, Tuple.Create(8, 9, 10, 11, 12, 13));
numbers.Item1;
numbers.Item7; 
numbers.Rest.Item1; 
numbers.Rest.Item1.Item1; 
numbers.Rest.Item1.Item2; 

Output

1
7
(8, 9, 10, 11, 12, 13)
8
9

 

A Tuple can be return from a method.

 

static void Main(string[] args)
{
    var details = Bind();
}

static Tuple<int, string, string> Bind() 
{
    return Tuple.Create(100, "Delhi", "NCR");
}

 

You can define tuples with an arbitrary large number of elements:

 

var tp =
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25);
Console.WriteLine(tp.Item25);  // output: 25

 

Tuple equality

(int a, byte b) left = (50, 10);
(long a, int b) right = (50, 10);
Console.WriteLine(left != right); // output: False
Console.WriteLine(left == right); // output: True

var tp1 = (A: 50, B: 10);
var tp2 = (B: 50, A: 10);
Console.WriteLine(tp1 != tp2); // output: False
Console.WriteLine(tp1 == tp2); // output: True
 
 

2021-10-03