Tuple<T1,T2,T3> Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje 3 řazenou kolekci členů nebo trojnásobnou kolekci členů.
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
Parametry typu
- T1
Typ první součásti řazené kolekce členů.
- T2
Typ druhé součásti řazené kolekce členů.
- T3
Typ třetí součásti řazené kolekce členů.
- Dědičnost
-
Tuple<T1,T2,T3>
- Atributy
- Implementuje
Poznámky
Řazená kolekce členů je datová struktura, která obsahuje určitý počet a pořadí hodnot. Třída Tuple<T1,T2,T3> představuje 3 řazenou kolekci členů nebo trojnásobnou kolekci členů, což je řazená kolekce členů, která má tři komponenty.
Objekt můžete vytvořit Tuple<T1,T2,T3> tak, že zavoláte Tuple<T1,T2,T3> konstruktor nebo statickou Tuple.Create<T1,T2,T3>(T1, T2, T3) metodu. Hodnoty komponent řazené kolekce členů můžete načíst pomocí vlastností jen pro Item1Item2čtení a Item3 instance.
Řazené kolekce členů se obvykle používají čtyřmi různými způsoby:
K reprezentaci jediné datové sady. Například řazená kolekce členů může představovat záznam v databázi a její součásti mohou představovat jednotlivá pole záznamu.
K zajištění snadného přístupu k datové sadě a manipulace s datovou sadou. Následující příklad definuje pole Tuple<T1,T2,T3> objektů, které obsahují jména studentů, jejich průměrné skóre testů a počet provedených testů. Pole se předá
ComputeStatistics
metodě, která vypočítá střední a směrodatnou odchylku skóre testu.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)
Pokud chcete vrátit více hodnot z metody bez použití
out
parametrů (v jazyce C#) neboByRef
parametrů (v Visual Basic). Například předchozí příklad vrátí statistiku souhrnného skóre testu v objektu Tuple<T1,T2,T3> .Pro předání více hodnot metodě prostřednictvím jediného parametru. Thread.Start(Object) Například metoda má jeden parametr, který umožňuje zadat jednu hodnotu metodě, kterou vlákno spouští při spuštění. Pokud jako argument metody zadáte Tuple<T1,T2,T3> objekt, můžete zadat rutinu spuštění vlákna se třemi položkami dat.
Konstruktory
Tuple<T1,T2,T3>(T1, T2, T3) |
Inicializuje novou instanci Tuple<T1,T2,T3> třídy. |
Vlastnosti
Item1 |
Získá hodnotu první komponenty aktuálního Tuple<T1,T2,T3> objektu. |
Item2 |
Získá hodnotu druhé komponenty aktuálního Tuple<T1,T2,T3> objektu. |
Item3 |
Získá hodnotu třetí komponenty aktuálního Tuple<T1,T2,T3> objektu. |
Metody
Equals(Object) |
Vrátí hodnotu, která označuje, zda je aktuální Tuple<T1,T2,T3> objekt roven zadanému objektu. |
GetHashCode() |
Vrátí kód hash aktuálního objektu Tuple<T1,T2,T3> . |
GetType() |
Type Získá aktuální instanci. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru Object. (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje hodnotu této Tuple<T1,T2,T3> instance. |
Explicitní implementace rozhraní
IComparable.CompareTo(Object) |
Porovná aktuální Tuple<T1,T2,T3> objekt se zadaným objektem a vrátí celé číslo, které označuje, zda je aktuální objekt před, za nebo ve stejné pozici jako zadaný objekt v pořadí řazení. |
IStructuralComparable.CompareTo(Object, IComparer) |
Porovná aktuální Tuple<T1,T2,T3> objekt s zadaným objektem pomocí zadaného porovnávače a vrátí celé číslo, které označuje, zda je aktuální objekt před, za nebo ve stejné pozici jako zadaný objekt v pořadí řazení. |
IStructuralEquatable.Equals(Object, IEqualityComparer) |
Vrátí hodnotu, která označuje, zda je aktuální Tuple<T1,T2,T3> objekt roven zadanému objektu na základě zadané metody porovnání. |
IStructuralEquatable.GetHashCode(IEqualityComparer) |
Vypočítá kód hash pro aktuální Tuple<T1,T2,T3> objekt pomocí zadané výpočetní metody. |
ITuple.Item[Int32] |
Získá hodnotu zadaného |
ITuple.Length |
Získá počet prvků v . |
Metody rozšíření
Deconstruct<T1,T2,T3>(Tuple<T1,T2,T3>, T1, T2, T3) |
Dekonstruuje řazenou kolekci členů se 3 prvky do samostatných proměnných. |
ToValueTuple<T1,T2,T3>(Tuple<T1,T2,T3>) |
Převede instanci |