.NET Zone is brought to you in partnership with:

I am Microsoft MVP for Visual C# having more then 8 Year of experience in Microsoft.NET And other Microsoft Technologies. Please fill free to contact me at www.dotnetjalps.com Jalpesh is a DZone MVB and is not an employee of DZone and has posted 45 posts at DZone. You can read more from them at their website. View Full User Profile

The New Tuple Feature in C# 4.0

06.08.2012
| 4055 views |
  • submit to reddit
The new version of C# (4.0) includes a new feature called Tuples. Tuples provides a way of grouping elements of different data types. That enables us to use it a lot where we can store coordinates of graphs etc.

In C# 4.0 we can create a Tuple with the Create method. This Create method offers 8 overloads like the following. So you can group a maximum of 8 data types with a Tuple. Followings are overloads of a data type.

  • Create(T1)- Which represents a tuple of size 1
  • Create(T1,T2)- Which represents a tuple of size 2
  • Create(T1,T2,T3) – Which represents a tuple of size 3
  • Create(T1,T2,T3,T4) – Which represents a tuple of size 4
  • Create(T1,T2,T3,T4,T5) – Which represents a tuple of size 5
  • Create(T1,T2,T3,T4,T5,T6) – Which represents a tuple of size 6
  • Create(T1,T2,T3,T4,T5,T6,T7) – Which represents a tuple of size 7
  • Create(T1,T2,T3,T4,T5,T6,T7,T8) – Which represents a tuple of size 8
Following are some example code snippets for tuple.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace TupleExample
{
class Program
{
 static void Main(string[] args)
 {
     var tuple = System.Tuple.Create<string, string, string>("Jalpesh", "P", "Vadgama");
     Console.WriteLine(tuple);
 
     var t = System.Tuple.Create<int, string>(1, "Jalpesh");
     Console.WriteLine(t);
 
 }
}
}
Following is a output of above as expected.

Tuple in C# 4.0

You can also access values inside Tuples with ItemN property. Where N represents a particular item in the tuple. The following is an example of it.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace TupleExample
{
class Program
{
 static void Main(string[] args)
 {
     var tuple = System.Tuple.Create<string, string, string>("Jalpesh", "P", "Vadgama");
     Console.WriteLine(tuple.Item1);
     Console.WriteLine(tuple.Item2);
     Console.WriteLine(tuple.Item3);
 }
}
}
Here you can see I have printed items with Item1,Item2 and Item3 . Following is the output of above code.

Tuple example in C# 4.0

We can also create a nested tuple.  The following is code for a nested tuple.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace TupleExample
{
class Program
{
 static void Main(string[] args)
 {
     var tuple = System.Tuple.Create(1,"Jalpesh",new Tuple<string,string>("P","Vadgama"));
     Console.WriteLine(tuple.Item1);
     Console.WriteLine(tuple.Item2);
     Console.WriteLine(tuple.Item3);
 
 }
}
}
The following is output of above code as expected.

Netsted tuple in C# 4.0

As you can see there are unlimited possibilities. We can do lots of things with Tuples. Hope you liked it. Stay tuned for more. Till then, Happy Programming!!

Published at DZone with permission of Jalpesh Vadgama, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)