Share via


Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>.Item2 Property

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Gets the value of the current Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object's second component.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public ReadOnly Property Item2 As T2
public T2 Item2 { get; }

Property Value

Type: T2
The value of the current Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> object's second component.

Remarks

You can dynamically determine the type of the Item2 component in one of two ways:

Examples

The following example creates a 17-tuple object that contains population data for the city of Detroit, Michigan, from 1860 to 2000. The second component of the 17-tuple is the first year of the data series. The example assigns the value of the Item2 property to a variable, and then uses that variable to represent the year whose data is displayed.

Imports system.Windows.Media

Module Example
   Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
      outputBlock.FontFamily = new FontFamily("Courier New")

      Dim from1980 = 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)

      outputBlock.Text += String.Format("Population of {0}", population.Item1) & vbCrLf
      outputBlock.Text &= vbCrLf
      outputBlock.Text &= String.Format("{0,5}  {1,14}  {2,10}", "Year", "Population", "Change") & vbCrLf

      Dim year As Integer = population.Item2
      ShowPopulation(outputBlock, year, population.Item3)
      year += 10
      ShowPopulationChange(outputBlock, year, population.Item4, population.Item3)
      year += 10
      ShowPopulationChange(outputBlock, year, population.Item5, population.Item4)
      year += 10
      ShowPopulationChange(outputBlock, year, population.Item6, population.Item5)
      year += 10
      ShowPopulationChange(outputBlock, year, population.Item7, population.Item6)
      year += 10
      ShowPopulationChange(outputBlock, year, population.Rest.Item1, population.Item7)
      year += 10
      ShowPopulationChange(outputBlock, year, population.Rest.Item2, population.Rest.Item1)
      year += 10
      ShowPopulationChange(outputBlock, year, population.Rest.Item3, population.Rest.Item2)
      year += 10
      ShowPopulationChange(outputBlock, year, population.Rest.Item4, population.Rest.Item3)
      year += 10
      ShowPopulationChange(outputBlock, year, population.Rest.Item5, population.Rest.Item4)
      year += 10
      ShowPopulationChange(outputBlock, year, population.Rest.Item6, population.Rest.Item5)
      year += 10
      ShowPopulationChange(outputBlock, year, population.Rest.Item7, population.Rest.Item6)
      year += 10
      ShowPopulationChange(outputBlock, year, population.Rest.Rest.Item1, population.Rest.Item7)
      year += 10
      ShowPopulationChange(outputBlock, year, population.Rest.Rest.Item2, population.Rest.Rest.Item1)
      year += 10
      ShowPopulationChange(outputBlock, year, population.Rest.Rest.Item3, population.Rest.Rest.Item2)
   End Sub

   Private Sub ShowPopulationChange(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal year As Integer, ByVal newPopulation As Integer, ByVal oldPopulation As Integer)
        outputBlock.Text += String.Format("{0,5}  {1,14:N0}  {2,10:P2}", year, newPopulation, _
                          (newPopulation - oldPopulation) / oldPopulation / 10) & vbCrLf
   End Sub

   Private Sub ShowPopulation(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal year As Integer, ByVal newPopulation As Integer)
      outputBlock.Text += String.Format("{0,5}  {1,14:N0}  {2,10:P2}", year, newPopulation, "n/a") & vbCrLf
   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 %
using System;
using System.Windows.Media;

class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      outputBlock.FontFamily = new FontFamily("Courier New");

      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);

      outputBlock.Text += String.Format("Population of {0}\n\n", population.Item1);
      outputBlock.Text += String.Format("{0,5}  {1,14}  {2,10}\n", "Year", "Population", "Change");

      int year = population.Item2;
      ShowPopulation(outputBlock, year, population.Item3);
      year += 10;
      ShowPopulationChange(outputBlock, year, population.Item4, population.Item3);
      year += 10;
      ShowPopulationChange(outputBlock, year, population.Item5, population.Item4);
      year += 10;
      ShowPopulationChange(outputBlock, year, population.Item6, population.Item5);
      year += 10;
      ShowPopulationChange(outputBlock, year, population.Item7, population.Item6);
      year += 10;
      ShowPopulationChange(outputBlock, year, population.Rest.Item1, population.Item7);
      year += 10;
      ShowPopulationChange(outputBlock, year, population.Rest.Item2, population.Rest.Item1);
      year += 10;
      ShowPopulationChange(outputBlock, year, population.Rest.Item3, population.Rest.Item2);
      year += 10;
      ShowPopulationChange(outputBlock, year, population.Rest.Item4, population.Rest.Item3);
      year += 10;
      ShowPopulationChange(outputBlock, year, population.Rest.Item5, population.Rest.Item4);
      year += 10;
      ShowPopulationChange(outputBlock, year, population.Rest.Item6, population.Rest.Item5);
      year += 10;
      ShowPopulationChange(outputBlock, year, population.Rest.Item7, population.Rest.Item6);
      year += 10;
      ShowPopulationChange(outputBlock, year, population.Rest.Rest.Item1, population.Rest.Item7);
      year += 10;
      ShowPopulationChange(outputBlock, year, population.Rest.Rest.Item2, population.Rest.Rest.Item1);
      year += 10;
      ShowPopulationChange(outputBlock, year, population.Rest.Rest.Item3, population.Rest.Rest.Item2);
   }

   private static void ShowPopulationChange(System.Windows.Controls.TextBlock outputBlock, int year, int newPopulation, int oldPopulation)
   {
      outputBlock.Text += String.Format("{0,5}  {1,14:N0}  {2,10:P2}", year, newPopulation,
                        ((double)(newPopulation - oldPopulation) / oldPopulation) / 10) + "\n";
   }

   private static void ShowPopulation(System.Windows.Controls.TextBlock outputBlock, int year, int newPopulation)
   {
      outputBlock.Text += String.Format("{0,5}  {1,14:N0}  {2,10:P2}", year, newPopulation, "n/a") + "\n";
   }
}
// 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 %

Version Information

Silverlight

Supported in: 5, 4

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.