Tuple<T1,T2,T3>.Item3 Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает значение третьего компонента текущего объекта Tuple<T1,T2,T3>.
public:
property T3 Item3 { T3 get(); };
public T3 Item3 { get; }
member this.Item3 : 'T3
Public ReadOnly Property Item3 As T3
Значение свойства
- T3
Значение третьего компонента текущего объекта Tuple<T1,T2,T3>.
Примеры
В следующем примере определяется массив Tuple<T1,T2,T3> объектов, содержащих имена учащихся, их средние оценки теста и количество выполненных тестов. Массив передается методу ComputeStatistics
, который вычисляет средний показатель, стандартное отклонение и число случаев, из которых вычисляется статистика. Эти значения хранятся в объекте Tuple<T1,T2,T3> , возвращаемом ComputeStatistics
методом. Свойство Item3 содержит стандартное отклонение.
using System;
public class Example
{
public static void Main()
{
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);
Console.WriteLine("Mean score: {0:N2} (SD={1:N2}) (n={2})",
result.Item2, result.Item3, result.Item1);
}
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)
open System
let computeStatistics (scores: Tuple<string, double, int>[]) =
let mutable n = 0
let mutable sum = 0.
// Compute the mean.
for score in scores do
n <- n + score.Item3
sum <- sum + score.Item2 * double score.Item3
let mean = sum / double n
// Compute the standard deviation.
let mutable ss = 0.
for score in scores do
ss <- (score.Item2 - mean) ** 2.
let sd = sqrt (ss / double scores.Length)
Tuple.Create(scores.Length, mean, sd)
let 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) |]
let result = computeStatistics scores
printfn $"Mean score: {result.Item2:N2} (SD={result.Item3:N2}) (n={result.Item1})"
// The example displays the following output:
// Mean score: 87.02 (SD=0.96) (n=8)
Module Example
Public Sub Main()
Dim 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) }
Dim result = ComputeStatistics(scores)
Console.WriteLine("Mean score: {0:N2} (SD={1:N2}) (n={2})",
result.Item2, result.Item3, result.Item1)
End Sub
Private Function ComputeStatistics(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)
Комментарии
Динамически определить тип Item3 компонента можно одним из двух способов:
Вызывая
GetType
метод для значения, возвращаемого свойством Item3 .Извлекая Type объект, представляющий Tuple<T1,T2,T3> объект, и извлекая третий элемент из массива, возвращаемого его Type.GetGenericArguments методом.