# Tuple.​Create Method

## Definition

 Create<​T1,​T2,​T3,​T4,​T5,​T6,​T7,​T8>(​T1, ​T2, ​T3, ​T4, ​T5, ​T6, ​T7, ​T8) Creates a new 8-tuple, or octuple. Create<​T1,​T2,​T3,​T4,​T5,​T6,​T7>(​T1, ​T2, ​T3, ​T4, ​T5, ​T6, ​T7) Creates a new 7-tuple, or septuple. Create<​T1,​T2,​T3,​T4,​T5,​T6>(​T1, ​T2, ​T3, ​T4, ​T5, ​T6) Creates a new 6-tuple, or sextuple. Create<​T1,​T2,​T3,​T4,​T5>(​T1, ​T2, ​T3, ​T4, ​T5) Creates a new 5-tuple, or quintuple. Create<​T1,​T2,​T3,​T4>(​T1, ​T2, ​T3, ​T4) Creates a new 4-tuple, or quadruple. Create<​T1,​T2,​T3>(​T1, ​T2, ​T3) Creates a new 3-tuple, or triple. Create<​T1,​T2>(​T1, ​T2) Creates a new 2-tuple, or pair. Create<​T1>(​T1) Creates a new 1-tuple, or singleton.

## Create<T1,T2,T3,T4,T5,T6,T7,T8>(T1, T2, T3, T4, T5, T6, T7, T8)

Creates a new 8-tuple, or octuple.

``public static Tuple<T1,T2,T3,T4,T5,T6,T7,Tuple<T8>> Create<T1,T2,T3,T4,T5,T6,T7,T8> (T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8);``
Type Parameters
T1

The type of the first component of the tuple.

T2

The type of the second component of the tuple.

T3

The type of the third component of the tuple.

T4

The type of the fourth component of the tuple.

T5

The type of the fifth component of the tuple.

T6

The type of the sixth component of the tuple.

T7

The type of the seventh component of the tuple.

T8

The type of the eighth component of the tuple.

Parameters
item1
T1

The value of the first component of the tuple.

item2
T2

The value of the second component of the tuple.

item3
T3

The value of the third component of the tuple.

item4
T4

The value of the fourth component of the tuple.

item5
T5

The value of the fifth component of the tuple.

item6
T6

The value of the sixth component of the tuple.

item7
T7

The value of the seventh component of the tuple.

item8
T8

The value of the eighth component of the tuple.

Returns
Tuple<T1,T2,T3,T4,T5,T6,T7,Tuple<T8>>

An 8-tuple (octuple) whose value is (`item1`, `item2`, `item3`, `item4`, `item5`, `item6`, `item7`, `item8`).

### Examples

The following example creates an 8-tuple whose components are 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
``````
``````Dim 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 example, which uses the Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> class constructor instead of the Create factory creation method. Note that instantiating a Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> object in this way involves considerably more code, because you must declare a nested Tuple<T1> object as the Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> object's eighth component to produce an octuple.

``````var primes = new Tuple<int, int, int, int, int, int, int,
Tuple<int>>(2, 3, 5, 7, 11, 13, 16,
new Tuple<int>(19));
``````
``````Dim primes As New Tuple(Of Integer, Integer, Integer, Integer,
Integer, Integer, Integer,
Tuple(Of Integer)) _
(2, 3, 5, 7, 11, 13, 17,
New Tuple(Of Integer)(19))
``````

### Remarks

Create is a helper method that you can call to instantiate an 8-tuple without having to explicitly specify the types of its components.

##### Note

You must call the System.Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>.Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> constructor to create a tuple with nine or more components unless your language provides a special syntax for this purpose. The static (`Shared` in Visual Basic) methods of the Tuple class cannot be used to create a tuple with nine or more components.

## Create<T1,T2,T3,T4,T5,T6,T7>(T1, T2, T3, T4, T5, T6, T7)

Creates a new 7-tuple, or septuple.

``public static Tuple<T1,T2,T3,T4,T5,T6,T7> Create<T1,T2,T3,T4,T5,T6,T7> (T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7);``
Type Parameters
T1

The type of the first component of the tuple.

T2

The type of the second component of the tuple.

T3

The type of the third component of the tuple.

T4

The type of the fourth component of the tuple.

T5

The type of the fifth component of the tuple.

T6

The type of the sixth component of the tuple.

T7

The type of the seventh component of the tuple.

Parameters
item1
T1

The value of the first component of the tuple.

item2
T2

The value of the second component of the tuple.

item3
T3

The value of the third component of the tuple.

item4
T4

The value of the fourth component of the tuple.

item5
T5

The value of the fifth component of the tuple.

item6
T6

The value of the sixth component of the tuple.

item7
T7

The value of the seventh component of the tuple.

Returns

A 7-tuple whose value is (`item1`, `item2`, `item3`, `item4`, `item5`, `item6`, `item7`).

### Remarks

Create is a helper method that you can call to instantiate a 7-tuple object without having to explicitly specify the types of its components. The following example uses the Create method to instantiate a 7-tuple.

``````var tuple7 = Tuple.Create("Jane", 90, 87, 93, 67, 100, 92);
Console.WriteLine("Test scores for {0}: {1}, {2}, {3}, {4}, {5}, {6}",
tuple7.Item1, tuple7.Item2, tuple7.Item3,
tuple7.Item4, tuple7.Item5, tuple7.Item6,
tuple7.Item7);
// Displays Test scores for Jane: 90, 87, 93, 67, 100, 92
``````
``````Dim tuple7 = Tuple.Create("Jane", 90, 87, 93, 67, 100, 92)
Console.WriteLine("Test scores for {0}: {1}, {2}, {3}, {4}, {5}, {6}",
tuple7.Item1, tuple7.Item2, tuple7.Item3,
tuple7.Item4, tuple7.Item5, tuple7.Item6,
tuple7.Item7)
' Displays Test scores for Jane: 90, 87, 93, 67, 100, 92
``````

This code is equivalent to the following call to the Tuple<T1,T2,T3,T4,T5,T6,T7> class constructor.

``````var tuple7 = new Tuple<string, int, int, int, int, int, int>
("Jane", 90, 87, 93, 67, 100, 92);
Console.WriteLine("Test scores for {0}: {1}, {2}, {3}, {4}, {5}, {6}",
tuple7.Item1, tuple7.Item2, tuple7.Item3,
tuple7.Item4, tuple7.Item5, tuple7.Item6,
tuple7.Item7);
// Displays Test scores for Jane: 90, 87, 93, 67, 100, 92
``````
``````Dim tuple7 = New Tuple(Of String, Integer, Integer,
Integer, Integer, Integer, Integer) _
("Jane", 90, 87, 93, 67, 100, 92)
Console.WriteLine("Test scores for {0}: {1}, {2}, {3}, {4}, {5}, {6}",
tuple7.Item1, tuple7.Item2, tuple7.Item3,
tuple7.Item4, tuple7.Item5, tuple7.Item6,
tuple7.Item7)
' Displays Test scores for Jane: 90, 87, 93, 67, 100, 92
``````

## Create<T1,T2,T3,T4,T5,T6>(T1, T2, T3, T4, T5, T6)

Creates a new 6-tuple, or sextuple.

``public static Tuple<T1,T2,T3,T4,T5,T6> Create<T1,T2,T3,T4,T5,T6> (T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6);``
Type Parameters
T1

The type of the first component of the tuple.

T2

The type of the second component of the tuple.

T3

The type of the third component of the tuple.

T4

The type of the fourth component of the tuple.

T5

The type of the fifth component of the tuple.

T6

The type of the sixth component of the tuple.

Parameters
item1
T1

The value of the first component of the tuple.

item2
T2

The value of the second component of the tuple.

item3
T3

The value of the third component of the tuple.

item4
T4

The value of the fourth component of the tuple.

item5
T5

The value of the fifth component of the tuple.

item6
T6

The value of the sixth component of the tuple.

Returns

A 6-tuple whose value is (`item1`, `item2`, `item3`, `item4`, `item5`, `item6`).

### Remarks

Create is a helper method that you can call to instantiate a 6-tuple object without having to explicitly specify the types of its components. The following example uses the Create method to instantiate a 6-tuple.

``````var tuple6 = Tuple.Create("Jane", 90, 87, 93, 67, 100);
Console.WriteLine("Test scores for {0}: {1}, {2}, {3}, {4}, {5}",
tuple6.Item1, tuple6.Item2, tuple6.Item3,
tuple6.Item4, tuple6.Item5, tuple6.Item6);
// Displays Test scores for Jane: 90, 87, 93, 67, 100
``````
``````Dim tuple6 = Tuple.Create("Jane", 90, 87, 93, 67, 100)
Console.WriteLine("Test scores for {0}: {1}, {2}, {3}, {4}, {5}",
tuple6.Item1, tuple6.Item2, tuple6.Item3,
tuple6.Item4, tuple6.Item5, tuple6.Item6)
' Displays Test scores for Jane: 90, 87, 93, 67, 100
``````

This code is equivalent to the following call to the Tuple<T1,T2,T3,T4,T5,T6> class constructor.

``````var tuple6 = new Tuple<string, int, int, int, int, int>
("Jane", 90, 87, 93, 67, 100);
Console.WriteLine("Test scores for {0}: {1}, {2}, {3}, {4}, {5}",
tuple6.Item1, tuple6.Item2, tuple6.Item3,
tuple6.Item4, tuple6.Item5, tuple6.Item6);
// Displays Test scores for Jane: 90, 87, 93, 67, 100
``````
``````Dim tuple6 = New Tuple(Of String, Integer, Integer, Integer,
Integer, Integer) _
("Jane", 90, 87, 93, 67, 100)
Console.WriteLine("Test scores for {0}: {1}, {2}, {3}, {4}, {5}",
tuple6.Item1, tuple6.Item2, tuple6.Item3,
tuple6.Item4, tuple6.Item5, tuple6.Item6)
' Displays Test scores for Jane: 90, 87, 93, 67, 100
``````

## Create<T1,T2,T3,T4,T5>(T1, T2, T3, T4, T5)

Creates a new 5-tuple, or quintuple.

``public static Tuple<T1,T2,T3,T4,T5> Create<T1,T2,T3,T4,T5> (T1 item1, T2 item2, T3 item3, T4 item4, T5 item5);``
Type Parameters
T1

The type of the first component of the tuple.

T2

The type of the second component of the tuple.

T3

The type of the third component of the tuple.

T4

The type of the fourth component of the tuple.

T5

The type of the fifth component of the tuple.

Parameters
item1
T1

The value of the first component of the tuple.

item2
T2

The value of the second component of the tuple.

item3
T3

The value of the third component of the tuple.

item4
T4

The value of the fourth component of the tuple.

item5
T5

The value of the fifth component of the tuple.

Returns

A 5-tuple whose value is (`item1`, `item2`, `item3`, `item4`, `item5`).

### Remarks

Create is a helper method that you can call to instantiate a 5-tuple object without having to explicitly specify the types of its components. The following example uses the Create method to instantiate a 5-tuple.

``````var tuple5 = Tuple.Create("New York", 1990, 7322564, 2000, 8008278);
Console.WriteLine("{0}: {1:N0} in {2}, {3:N0} in {4}",
tuple5.Item1, tuple5.Item3, tuple5.Item2,
tuple5.Item5, tuple5.Item4);
// Displays New York: 7,322,564 in 1990, 8,008,278 in 2000
``````
``````Dim tuple5 = Tuple.Create("New York", 1990, 7322564, 2000,
8008278)
Console.WriteLine("{0}: {1:N0} in {2}, {3:N0} in {4}",
tuple5.Item1, tuple5.Item3, tuple5.Item2,
tuple5.Item5, tuple5.Item4)
' Displays New York: 7,322,564 in 1990, 8,008,278 in 2000
``````

This code is equivalent to the following call to the Tuple<T1,T2,T3,T4,T5> class constructor.

``````var tuple5 = new Tuple<string, int, int, int, int>
("New York", 1990, 7322564, 2000, 8008278);
Console.WriteLine("{0}: {1:N0} in {2}, {3:N0} in {4}",
tuple5.Item1, tuple5.Item3, tuple5.Item2,
tuple5.Item5, tuple5.Item4);
// Displays New York: 7,322,564 in 1990, 8,008,278 in 2000
``````
``````Dim tuple5 = New Tuple(Of String, Integer, Integer,
Integer, Integer) _
("New York", 1990, 7322564, 2000, 8008278)
Console.WriteLine("{0}: {1:N0} in {2}, {3:N0} in {4}",
tuple5.Item1, tuple5.Item3, tuple5.Item2,
tuple5.Item5, tuple5.Item4)
' Displays New York: 7,322,564 in 1990, 8,008,278 in 2000
``````

## Create<T1,T2,T3,T4>(T1, T2, T3, T4)

Creates a new 4-tuple, or quadruple.

``public static Tuple<T1,T2,T3,T4> Create<T1,T2,T3,T4> (T1 item1, T2 item2, T3 item3, T4 item4);``
Type Parameters
T1

The type of the first component of the tuple.

T2

The type of the second component of the tuple.

T3

The type of the third component of the tuple.

T4

The type of the fourth component of the tuple.

Parameters
item1
T1

The value of the first component of the tuple.

item2
T2

The value of the second component of the tuple.

item3
T3

The value of the third component of the tuple.

item4
T4

The value of the fourth component of the tuple.

Returns

A 4-tuple whose value is (`item1`, `item2`, `item3`, `item4`).

### Remarks

Create is a helper method that you can call to instantiate a 4-tuple object without having to explicitly specify the types of its components. The following example uses the Create method to instantiate a 4-tuple.

``````var tuple4 = Tuple.Create("New York", 32.68, 51.87, 76.3);
Console.WriteLine("{0}: Hi {1}, Lo {2}, Ave {3}",
tuple4.Item1, tuple4.Item4, tuple4.Item2,
tuple4.Item3);
// Displays New York: Hi 76.3, Lo 32.68, Ave 51.87
``````
``````Dim tuple4 = Tuple.Create("New York", 32.68, 51.87, 76.3)
Console.WriteLine("{0}: Hi {1}, Lo {2}, Ave {3}",
tuple4.Item1, tuple4.Item4, tuple4.Item2,
tuple4.Item3)
' Displays New York: Hi 76.3, Lo 32.68, Ave 51.87
``````

This code is equivalent to the following call to the System.Tuple<T1,T2,T3,T4>.Tuple<T1,T2,T3,T4> class constructor.

``````var tuple4 = new Tuple<string, double, double, double>
("New York", 32.68, 51.87, 76.3);
Console.WriteLine("{0}: Hi {1}, Lo {2}, Ave {3}",
tuple4.Item1, tuple4.Item4, tuple4.Item2,
tuple4.Item3);
// Displays New York: Hi 76.3, Lo 32.68, Ave 51.87
``````
``````Dim tuple4 = New Tuple(Of String, Double, Double, Double) _
("New York", 32.68, 51.87, 76.3)
Console.WriteLine("{0}: Hi {1}, Lo {2}, Ave {3}",
tuple4.Item1, tuple4.Item4, tuple4.Item2,
tuple4.Item3)
' Displays New York: Hi 76.3, Lo 32.68, Ave 51.87
``````

## Create<T1,T2,T3>(T1, T2, T3)

Creates a new 3-tuple, or triple.

``public static Tuple<T1,T2,T3> Create<T1,T2,T3> (T1 item1, T2 item2, T3 item3);``
Type Parameters
T1

The type of the first component of the tuple.

T2

The type of the second component of the tuple.

T3

The type of the third component of the tuple.

Parameters
item1
T1

The value of the first component of the tuple.

item2
T2

The value of the second component of the tuple.

item3
T3

The value of the third component of the tuple.

Returns

A 3-tuple whose value is (`item1`, `item2`, `item3`).

### Remarks

Create is a helper method that you can call to instantiate a 3-tuple object without having to explicitly specify the types of its components. The following example uses the Create method to instantiate a 3-tuple.

``````var tuple3 = Tuple.Create("New York", 32.68, 51.87);
Console.WriteLine("{0}: lo {1}, hi {2}",
tuple3.Item1, tuple3.Item2, tuple3.Item3);
// Displays New York: lo 32.68, hi 51.87
``````
``````Dim tuple3 = Tuple.Create("New York", 32.68, 51.87)
Console.WriteLine("{0}: lo {1}, hi {2}",
tuple3.Item1, tuple3.Item2, tuple3.Item3)
' Displays New York: lo 32.68, hi 51.87
``````

This code is equivalent to the following call to the System.Tuple<T1,T2,T3>.Tuple<T1,T2,T3> class constructor.

``````var tuple3 = new Tuple<string, double, double>
("New York", 32.68, 51.87);
Console.WriteLine("{0}: lo {1}, hi {2}",
tuple3.Item1, tuple3.Item2, tuple3.Item3);
// Displays New York: lo 32.68, hi 51.87
``````
``````Dim tuple3 = New Tuple(Of String, Double, Double)("New York", 32.68, 51.87)
Console.WriteLine("{0}: lo {1}, hi {2}",
tuple3.Item1, tuple3.Item2, tuple3.Item3)
' Displays New York: lo 32.68, hi 51.87
``````

## Create<T1,T2>(T1, T2)

Creates a new 2-tuple, or pair.

``public static Tuple<T1,T2> Create<T1,T2> (T1 item1, T2 item2);``
Type Parameters
T1

The type of the first component of the tuple.

T2

The type of the second component of the tuple.

Parameters
item1
T1

The value of the first component of the tuple.

item2
T2

The value of the second component of the tuple.

Returns

A 2-tuple whose value is (`item1`, `item2`).

### Remarks

Create is a helper method that you can call to instantiate a 2-tuple object without having to explicitly specify the types of its components. The following example uses the Create method to instantiate a 2-tuple.

``````var tuple2 = Tuple.Create("New York", 32.68);
Console.WriteLine("{0}: {1}", tuple2.Item1, tuple2.Item2);
// Displays New York: 32.68
``````
``````Dim tuple2 = Tuple.Create("New York", 32.68)
Console.WriteLine("{0}: {1}", tuple2.Item1, tuple2.Item2)
' Displays New York: 32.68
``````

This code is equivalent to the following call to the Tuple<T1,T2> class constructor.

``````var tuple2 = new Tuple<string, double>("New York", 32.68);
Console.WriteLine("{0}: {1}", tuple2.Item1, tuple2.Item2);
// Displays New York: 32.68
``````
``````Dim tuple2 = New Tuple(Of String, Double)("New York", 32.68)
Console.WriteLine("{0}: {1}", tuple2.Item1, tuple2.Item2)
' Displays New York: 32.68
``````

## Create<T1>(T1)

Creates a new 1-tuple, or singleton.

``public static Tuple<T1> Create<T1> (T1 item1);``
Type Parameters
T1

The type of the only component of the tuple.

Parameters
item1
T1

The value of the only component of the tuple.

Returns

A tuple whose value is (`item1`).

### Remarks

Create is a helper method that you can call to instantiate a 1-tuple object without having to explicitly specify the type of its component. The following example uses the Create method to instantiate a 1-tuple whose component is of type Int32.

``````var tuple1 = Tuple.Create(12);
Console.WriteLine(tuple1.Item1);     // Displays 12
``````
``````Dim tuple1 = Tuple.Create(12)
Console.WriteLine(tuple1.Item1)     ' Displays 12
``````

This code is equivalent to the following call to the Tuple<T1> class constructor.

``````var tuple1 = new Tuple<int>(12);
Console.WriteLine(tuple1.Item1);     // Displays 12
``````
``````Dim tuple1 = New Tuple(Of Integer)(12)
Console.WriteLine(tuple1.Item1)     ' Displays 12
``````