Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> Constructor (T1, T2, T3, T4, T5, T6, T7, TRest)
Initializes a new instance of the Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> class.
Assembly: mscorlib (in mscorlib.dll)
public Tuple(
T1 item1,
T2 item2,
T3 item3,
T4 item4,
T5 item5,
T6 item6,
T7 item7,
TRest rest
)
Parameters
 item1

Type:
T1
The value of the tuple's first component.
 item2

Type:
T2
The value of the tuple's second component.
 item3

Type:
T3
The value of the tuple's third component.
 item4

Type:
T4
The value of the tuple's fourth component
 item5

Type:
T5
The value of the tuple's fifth component.
 item6

Type:
T6
The value of the tuple's sixth component.
 item7

Type:
T7
The value of the tuple's seventh component.
 rest

Type:
TRest
Any generic Tuple object that contains the values of the tuple's remaining components.
Exception  Condition 

ArgumentException  rest is not a generic Tuple object. 
You can also use the static Tuple.Create<T1, T2, T3, T4, T5, T6, T7, T8> method to instantiate an 8tuple (octuple) object without having to explicitly specify the types of its components. The following example uses the Tuple.Create<T1, T2, T3, T4, T5, T6, T7, T8> method to instantiate an 8tuple object that contains prime numbers that are less than 20.
var primes = Tuple.Create(2, 3, 5, 7, 11, 13, 17, 19); Console.WriteLine("Prime numbers less than 20: " + "{0}, {1}, {2}, {3}, {4}, {5}, {6}, and {7}", primes.Item1, primes.Item2, primes.Item3, primes.Item4, primes.Item5, primes.Item6, primes.Item7, primes.Rest.Item1); // The example displays the following output: // Prime numbers less than 20: 2, 3, 5, 7, 11, 13, 17, and 19
This is equivalent to the following call to the Tuple<T1, T2, T3, T4, T5, T6, T7> class constructor.
var primes = new Tuple<Int32, Int32, Int32, Int32, Int32, Int32, Int32, Tuple<Int32>> (2, 3, 5, 7, 11, 13, 17, new Tuple<Int32>(19));
However, the static Tuple.Create<T1, T2, T3, T4, T5, T6, T7, T8> method cannot be used to create a tuple object with more than eight components.
When using the Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> constructor to create an ntuple with eight or more components, you use the rest parameter to create a nested ntuple that has from one to seven components. By using successive levels of nesting, you can create an ntuple that has a virtually unlimited number of components. For example, to create a 25tuple, you instantiate a Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object with three levels of nesting, as follows:
The outermost Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object contains the first through seventh components. Its Rest property provides access to an Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object at the first level of nesting.
The outermost nested Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object contains the eighth through fourteenth components, and its Rest property provides access to an Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object at the second level of nesting.
The Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object at the second level of nesting contains the fifteenth through twentyfirst components, and its Rest property provides access to an Tuple<T1, T2, T3, T4> object at the third level of nesting.
The innermost tuple is a Tuple<T1, T2, T3, T4> object that contains the twentysecond through twentyfifth components.
The following example creates a 17tuple that contains population data for the city of Detroit, Michigan, for each census from 1860 to 2000. The first component of the tuple is the city name. The second component is the start date of the series of data, and the third component is the population at the start date. Each subsequent component provides the population at decade intervals. The example uses two layers of nesting to create the 17tuple: It defines a 7tuple whose third through seventh components contain population data for 1860 through 1900, a nested 7tuple that contains population data for 1910 through 1970, and an inner nested 3tuple that contains population data for 1980 through 2000.
var from1980 = Tuple.Create(1203339, 1027974, 951270); var from1910 = new Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>> (465766, 993078, 1568622, 1623452, 1849568, 1670144, 1511462, from1980); var population = new Tuple<string, int, int, int, int, int, int, Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>>> ("Detroit", 1860, 45619, 79577, 116340, 205876, 285704, from1910);
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 4.0
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1