Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>.Item1 Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets the value of the current Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> object's first component.
public:
property T1 Item1 { T1 get(); };
public T1 Item1 { get; }
member this.Item1 : 'T1
Public ReadOnly Property Item1 As T1
Property Value
The value of the current Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> object's first component.
Examples
The following example creates a 17-tuple object that contains population data for the city of Detroit, Michigan, from 1860 to 2000. The first component of the 17-tuple is the city name. The example uses the Item1 property to display the city name in the table header before displaying the population data.
using System;
class Example
{
static void Main(string[] args)
{
Tuple<int, int, int> 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);
Console.WriteLine("Population of {0}", population.Item1);
Console.WriteLine();
Console.WriteLine("{0,5} {1,14} {2,10}", "Year", "Population", "Change");
int year = population.Item2;
ShowPopulation(year, population.Item3);
year += 10;
ShowPopulationChange(year, population.Item4, population.Item3);
year += 10;
ShowPopulationChange(year, population.Item5, population.Item4);
year += 10;
ShowPopulationChange(year, population.Item6, population.Item5);
year += 10;
ShowPopulationChange(year, population.Item7, population.Item6);
year += 10;
ShowPopulationChange(year, population.Rest.Item1, population.Item7);
year += 10;
ShowPopulationChange(year, population.Rest.Item2, population.Rest.Item1);
year += 10;
ShowPopulationChange(year, population.Rest.Item3, population.Rest.Item2);
year += 10;
ShowPopulationChange(year, population.Rest.Item4, population.Rest.Item3);
year += 10;
ShowPopulationChange(year, population.Rest.Item5, population.Rest.Item4);
year += 10;
ShowPopulationChange(year, population.Rest.Item6, population.Rest.Item5);
year += 10;
ShowPopulationChange(year, population.Rest.Item7, population.Rest.Item6);
year += 10;
ShowPopulationChange(year, population.Rest.Rest.Item1, population.Rest.Item7);
year += 10;
ShowPopulationChange(year, population.Rest.Rest.Item2, population.Rest.Rest.Item1);
year += 10;
ShowPopulationChange(year, population.Rest.Rest.Item3, population.Rest.Rest.Item2);
}
private static void ShowPopulationChange(int year, int newPopulation, int oldPopulation)
{
Console.WriteLine("{0,5} {1,14:N0} {2,10:P2}", year, newPopulation,
((double)(newPopulation - oldPopulation) / oldPopulation) / 10);
}
private static void ShowPopulation(int year, int newPopulation)
{
Console.WriteLine("{0,5} {1,14:N0} {2,10:P2}", year, newPopulation, "n/a");
}
}
// The example displays the following output:
//
// Population of Detroit
// Year Population Change
// 1860 45,619 n/a
// 1870 79,577 7.44 %
// 1880 116,340 4.62 %
// 1890 205,876 7.70 %
// 1900 285,704 3.88 %
// 1910 465,766 6.30 %
// 1920 993,078 11.32 %
// 1930 1,568,622 5.80 %
// 1940 1,623,452 0.35 %
// 1950 1,849,568 1.39 %
// 1960 1,670,144 -0.97 %
// 1970 1,511,462 -0.95 %
// 1980 1,203,339 -2.04 %
// 1990 1,027,974 -1.46 %
// 2000 951,270 -0.75 %
let showPopulation year newPopulation =
printfn $"""{year,5} {newPopulation,14:N0} {"n/a",10:P2}"""
let showPopulationChange year newPopulation oldPopulation =
printfn $"{year,5} {newPopulation,14:N0} {(double (newPopulation - oldPopulation) / oldPopulation) / 10.,10:P2}"
let from1980 = Tuple.Create(1203339, 1027974, 951270)
let from1910 = new Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>>(465766, 993078, 1568622, 1623452, 1849568, 1670144, 1511462, from1980)
let 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)
printfn $"Population of {population.Item1}\n"
printfn "%5s %14s %10s" "Year" "Population" "Change"
do
let year = population.Item2
showPopulation year population.Item3
let year = year + 10
showPopulationChange year population.Item4 population.Item3
let year = year + 10
showPopulationChange year population.Item5 population.Item4
let year = year + 10
showPopulationChange year population.Item6 population.Item5
let year = year + 10
showPopulationChange year population.Item7 population.Item6
let year = year + 10
showPopulationChange year population.Rest.Item1 population.Item7
let year = year + 10
showPopulationChange year population.Rest.Item2 population.Rest.Item1
let year = year + 10
showPopulationChange year population.Rest.Item3 population.Rest.Item2
let year = year + 10
showPopulationChange year population.Rest.Item4 population.Rest.Item3
let year = year + 10
showPopulationChange year population.Rest.Item5 population.Rest.Item4
let year = year + 10
showPopulationChange year population.Rest.Item6 population.Rest.Item5
let year = year + 10
showPopulationChange year population.Rest.Item7 population.Rest.Item6
let year = year + 10
showPopulationChange year population.Rest.Rest.Item1 population.Rest.Item7
let year = year + 10
showPopulationChange year population.Rest.Rest.Item2 population.Rest.Rest.Item1
let year = year + 10
showPopulationChange year population.Rest.Rest.Item3 population.Rest.Rest.Item2
// The example displays the following output:
//
// Population of Detroit
// Year Population Change
// 1860 45,619 n/a
// 1870 79,577 7.44 %
// 1880 116,340 4.62 %
// 1890 205,876 7.70 %
// 1900 285,704 3.88 %
// 1910 465,766 6.30 %
// 1920 993,078 11.32 %
// 1930 1,568,622 5.80 %
// 1940 1,623,452 0.35 %
// 1950 1,849,568 1.39 %
// 1960 1,670,144 -0.97 %
// 1970 1,511,462 -0.95 %
// 1980 1,203,339 -2.04 %
// 1990 1,027,974 -1.46 %
// 2000 951,270 -0.75 %
Module Example
Sub Main()
Dim from1980 As Tuple(Of Integer, Integer, Integer) =
Tuple.Create(1203339, 1027974, 951270)
Dim from1910 As New Tuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, _
Tuple(Of Integer, Integer, Integer)) _
(465766, 993078, 1568622, 1623452, 1849568, 1670144, 1511462, from1980)
Dim population As New Tuple(Of String, Integer, Integer, Integer, Integer, Integer, Integer, _
Tuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, Tuple(Of Integer, Integer, Integer))) _
("Detroit", 1860, 45619, 79577, 116340, 205876, 285704, from1910)
Console.WriteLine("Population of {0}", population.Item1)
Console.WriteLine()
Console.WriteLine("{0,5} {1,14} {2,10}", "Year", "Population", "Change")
Dim year As Integer = population.Item2
ShowPopulation(year, population.Item3)
year += 10
ShowPopulationChange(year, population.Item4, population.Item3)
year += 10
ShowPopulationChange(year, population.Item5, population.Item4)
year += 10
ShowPopulationChange(year, population.Item6, population.Item5)
year += 10
ShowPopulationChange(year, population.Item7, population.Item6)
year += 10
ShowPopulationChange(year, population.Rest.Item1, population.Item7)
year += 10
ShowPopulationChange(year, population.Rest.Item2, population.Rest.Item1)
year += 10
ShowPopulationChange(year, population.Rest.Item3, population.Rest.Item2)
year += 10
ShowPopulationChange(year, population.Rest.Item4, population.Rest.Item3)
year += 10
ShowPopulationChange(year, population.Rest.Item5, population.Rest.Item4)
year += 10
ShowPopulationChange(year, population.Rest.Item6, population.Rest.Item5)
year += 10
ShowPopulationChange(year, population.Rest.Item7, population.Rest.Item6)
year += 10
ShowPopulationChange(year, population.Rest.Rest.Item1, population.Rest.Item7)
year += 10
ShowPopulationChange(year, population.Rest.Rest.Item2, population.Rest.Rest.Item1)
year += 10
ShowPopulationChange(year, population.Rest.Rest.Item3, population.Rest.Rest.Item2)
End Sub
Private Sub ShowPopulationChange(ByVal year As Integer, ByVal newPopulation As Integer, ByVal oldPopulation As Integer)
Console.WriteLine("{0,5} {1,14:N0} {2,10:P2}", year, newPopulation,
(newPopulation - oldPopulation) / oldPopulation / 10)
End Sub
Private Sub ShowPopulation(ByVal year As Integer, ByVal newPopulation As Integer)
Console.WriteLine("{0,5} {1,14:N0} {2,10:P2}", year, newPopulation, "n/a")
End Sub
End Module
' The example displays the following output:
'
' Population of Detroit
' Year Population Change
' 1860 45,619 n/a
' 1870 79,577 7.44 %
' 1880 116,340 4.62 %
' 1890 205,876 7.70 %
' 1900 285,704 3.88 %
' 1910 465,766 6.30 %
' 1920 993,078 11.32 %
' 1930 1,568,622 5.80 %
' 1940 1,623,452 0.35 %
' 1950 1,849,568 1.39 %
' 1960 1,670,144 -0.97 %
' 1970 1,511,462 -0.95 %
' 1980 1,203,339 -2.04 %
' 1990 1,027,974 -1.46 %
' 2000 951,270 -0.75 %
Remarks
You can dynamically determine the type of the Item1 component in one of two ways:
By calling the
GetType
method on the value that is returned by the Item1 property.By retrieving the Type object that represents the Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> object, and retrieving the first element from the array that is returned by its Type.GetGenericArguments method.