Tuple<T1,T2,T3> Класс
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет кортеж из трех компонентов.
generic <typename T1, typename T2, typename T3>
public ref class Tuple : IComparable, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable
generic <typename T1, typename T2, typename T3>
public ref class Tuple : IComparable, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable, System::Runtime::CompilerServices::ITuple
public class Tuple<T1,T2,T3> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
public class Tuple<T1,T2,T3> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple
[System.Serializable]
public class Tuple<T1,T2,T3> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
type Tuple<'T1, 'T2, 'T3> = class
interface IStructuralComparable
interface IStructuralEquatable
interface IComparable
type Tuple<'T1, 'T2, 'T3> = class
interface IStructuralComparable
interface IStructuralEquatable
interface IComparable
interface ITuple
[<System.Serializable>]
type Tuple<'T1, 'T2, 'T3> = class
interface IStructuralEquatable
interface IStructuralComparable
interface IComparable
[<System.Serializable>]
type Tuple<'T1, 'T2, 'T3> = class
interface IStructuralEquatable
interface IStructuralComparable
interface IComparable
interface ITuple
Public Class Tuple(Of T1, T2, T3)
Implements IComparable, IStructuralComparable, IStructuralEquatable
Public Class Tuple(Of T1, T2, T3)
Implements IComparable, IStructuralComparable, IStructuralEquatable, ITuple
- T1
Тип первого компонента кортежа.
- T2
Тип второго компонента кортежа.
- T3
Тип третьего компонента кортежа.
- Наследование
-
Tuple<T1,T2,T3>
- Атрибуты
- Реализации
Кортеж — это структура данных, которая имеет определенное число и последовательность значений. Класс Tuple<T1,T2,T3> представляет собой три кортежа или три кортежа, который представляет собой кортеж с тремя компонентами.
Вы можете создать Tuple<T1,T2,T3> экземпляр объекта, вызвав Tuple<T1,T2,T3> конструктор или статический Tuple.Create<T1,T2,T3>(T1, T2, T3) метод. Значения компонентов кортежа можно получить с помощью свойств экземпляра только Item1Item2для чтения и Item3 экземпляра.
Кортежи обычно используются четырьмя разными способами:
Представление одного набора данных. Например, кортеж может представлять запись базы данных, а его компоненты могут представлять отдельные поля записи.
Для обеспечения простого доступа к набору данных и управления ими. В следующем примере определяется массив Tuple<T1,T2,T3> объектов, содержащих имена учащихся, их средние оценки теста и количество выполненных тестов. Массив передается методу
ComputeStatistics
, который вычисляет среднее и стандартное отклонение тестов.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)
Получение нескольких значений из метода без использования
out
параметров (в C#) илиByRef
параметров (в Visual Basic). Например, в предыдущем примере возвращается сводная статистика оценки теста в объекте Tuple<T1,T2,T3> .Передача нескольких значений методу через один параметр. Например, метод Thread.Start(Object) имеет один параметр, который позволяет указать одно значение методу, который выполняется потоком при запуске. Если вы предоставляете объект в Tuple<T1,T2,T3> качестве аргумента метода, можно указать подпрограмму запуска потока тремя элементами данных.
Tuple<T1,T2,T3>(T1, T2, T3) |
Инициализирует новый экземпляр класса Tuple<T1,T2,T3>. |
Item1 |
Получает значение первого компонента текущего объекта Tuple<T1,T2,T3>. |
Item2 |
Получает значение второго компонента текущего объекта Tuple<T1,T2,T3>. |
Item3 |
Получает значение третьего компонента текущего объекта Tuple<T1,T2,T3>. |
Equals(Object) |
Возвращает значение, показывающее, равен ли текущий объект Tuple<T1,T2,T3> указанному объекту. |
Get |
Возвращает хэш-код для текущего объекта Tuple<T1,T2,T3>. |
Get |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
Memberwise |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
To |
Возвращает строковое представление значения этого экземпляра Tuple<T1,T2,T3>. |
IComparable. |
Сравнивает текущий объект Tuple<T1,T2,T3> с заданным объектом и возвращает целое число, указывающее, находится ли текущий объект в той же позиции, что и указанный объект, после него или перед ним в порядке сортировки. |
IStructural |
Сравнивает текущий объект Tuple<T1,T2,T3> с указанным объектом, используя заданный компаратор, и возвращает целое число, которое показывает положение текущего объекта относительно указанного объекта в порядке сортировки: перед объектом, после него или в той же позиции. |
IStructural |
Возвращает значение, показывающее, равен ли текущий атрибут Tuple<T1,T2,T3> указанному объекту при использовании заданного метода сравнения. |
IStructural |
Вычисляет хэш-код для текущего объекта Tuple<T1,T2,T3>, используя заданный метод вычисления. |
ITuple. |
Получает значение указанного элемента |
ITuple. |
Возвращает количество элементов в |
Deconstruct<T1,T2,T3>(Tuple<T1,T2,T3>, T1, T2, T3) |
Разбивает кортеж с 3 элементами на отдельные переменные. |
To |
Преобразует экземпляр класса |