Tuple<T1, T2, T3>.Item2 Property
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Gets the value of the current Tuple<T1, T2, T3> 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> object's second component.
Remarks
You can dynamically determine the type of the Item2 component in one of two ways:
By calling the GetType method on the value that is returned by the Item2 property.
By retrieving the Type object that represents the Tuple<T1, T2, T3> object, and retrieving the second element from the array that is returned by its Type.GetGenericArguments method.
Examples
The following example defines an array of Tuple<T1, T2, T3> objects that contain the names of students, their average test scores, and the number of tests taken. The array is passed to the ComputeStatistics method, which calculates the mean score, standard deviation, and number of cases from which the statistics are calculated. These values are stored in the Tuple<T1, T2, T3> object that is returned by the ComputeStatistics method. The Item2 property contains the mean test score.
Module Example
Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
Dim scores() As Tuple(Of String, Double, Integer) = _
{ Tuple.Create("Jack", 78.8, 8), _
Tuple.Create("Abbey", 92.1, 9), _
Tuple.Create("Dave", 88.3, 9), _
Tuple.Create("Sam", 91.7, 8), _
Tuple.Create("Ed", 71.2, 5), _
Tuple.Create("Penelope", 82.9, 8), _
Tuple.Create("Linda", 99.0, 9), _
Tuple.Create("Judith", 84.3, 9) }
Dim result = ComputeStatistics(scores)
outputBlock.Text += String.Format("Mean score: {0:N2} (SD={1:N2}) (n={2})", _
result.Item2, result.Item3, result.Item1) + vbCrLf
End Sub
Private Function ComputeStatistics(ByVal scores() As Tuple(Of String, Double, Integer)) _
As Tuple(Of Integer, Double, Double)
Dim n As Integer = 0
Dim sum As Double = 0
' Compute the mean.
For Each score In scores
n += score.Item3
sum += score.Item2 * score.Item3
Next
Dim mean As Double = sum / n
' Compute the standard deviation.
Dim ss As Double = 0
For Each score In scores
ss = Math.Pow(score.Item2 - mean, 2)
Next
Dim sd As Double = Math.Sqrt(ss / scores.Length)
Return Tuple.Create(scores.Length, mean, sd)
End Function
End Module
' The example displays the following output:
' Mean score: 87.02 (SD=0.96) (n=8)
using System;
public class Example
{
public static void Demo(System.Windows.Controls.TextBlock outputBlock)
{
Tuple<string, double, int>[] scores =
{ Tuple.Create("Jack", 78.8, 8),
Tuple.Create("Abbey", 92.1, 9),
Tuple.Create("Dave", 88.3, 9),
Tuple.Create("Sam", 91.7, 8),
Tuple.Create("Ed", 71.2, 5),
Tuple.Create("Penelope", 82.9, 8),
Tuple.Create("Linda", 99.0, 9),
Tuple.Create("Judith", 84.3, 9) };
var result = ComputeStatistics(scores);
outputBlock.Text += String.Format("Mean score: {0:N2} (SD={1:N2}) (n={2})",
result.Item2, result.Item3, result.Item1) + "\n";
}
private static Tuple<int, double, double> ComputeStatistics(Tuple<string, double, int>[] scores)
{
int n = 0;
double sum = 0;
// Compute the mean.
foreach (var score in scores)
{
n += score.Item3;
sum += score.Item2 * score.Item3;
}
double mean = sum / n;
// Compute the standard deviation.
double ss = 0;
foreach (var score in scores)
{
ss = Math.Pow(score.Item2 - mean, 2);
}
double sd = Math.Sqrt(ss / scores.Length);
return Tuple.Create(scores.Length, mean, sd);
}
}
// The example displays the following output:
// Mean score: 87.02 (SD=0.96) (n=8)
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.