Recently, Microsoft announced various new features in C# 7.0 with Visual Studio 2017. In C# 7.0, some new feature of tuples are enhanced with Visual Studio 2017. Tuples aren’t new in C# or.NET. They were first introduced as a part of.NET Framework 4.0. This useful feature of the tuple is all about returning multiple value without having:

  1. A class and list<> of the class.
  2. Array, observableCollection, ArrayList or Dictionary.
  3. A series of ref or out parameters.
It is similar to the code snippet given below.
  1. public (string name, string dept, int id) GetData()
  2. {
  3. return ("Avnish", "R&D", 001);
  4. }
Before C# 7.0, the use of tuple is given below.
  1. public Tuple<string, string, int> GetData2()
  2. {
  3. return new Tuple<string, string, int>("Rakesh", "Marketing", 002);
  4. }
This first thing to be noted is that it is not included automatically in a new project. You must include the System.ValueTuple Nuget package to take an advantage of it in your Visual studio 2017 or its community edition.
Let's create a console project for demo.
Step 1

Create a new 'Console App' in Visual Studio 2017 RC or Visual Studio 2017.

Create console app

Step 2

Go to
add a NuGet package. By right click to "References" in Solution Explorer, click on "Manage NuGet Package". Now, search for "System.ValueTuple" and install such package.



Step 3

For
use of tuples, add the code given below in Program.cs.

  1. namespace TupleDemo
  2. {
  3. class Program
  4. {
  5. static void Main(string[] args)
  6. {
  7. Demo demo = new Demo();
  8. var result = demo.GetData();
  9. Console.WriteLine("Name= " + result.name + " Dept = " + result.dept + " Id= " + result.id);
  10. var result2 = demo.GetData2();
  11. Console.WriteLine("Name= " + result2.Item1 + " Dept = " + result2.Item2 + " Id= " + result2.Item3);
  12. var result3 = demo.GetData3();
  13. Console.WriteLine("Name= " + result3.Item1 + " Dept = " + result3.Item2 + " Id= " + result3.Item3);
  14. Console.ReadKey();
  15. }
  16. }
  17. class Demo
  18. {
  19. public (string name, string dept, int id) GetData()
  20. {
  21. return ("Avnish", "R&D", 001);
  22. }
  23. public Tuple<string, string, int> GetData2()
  24. {
  25. return new Tuple<string, string, int>("Rakesh", "Marketing", 002);
  26. }
  27. public (string, string, int) GetData3()
  28. {
  29. return ("Mukesh", "Testing", 003);
  30. }
  31. }
  32. }
Step 4

Build and run the project.


Thanks for reading.