Tuple<T1,T2,T3> Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt een 3-tuple of drie keer.
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
Type parameters
- T1
Het type van het eerste onderdeel van de tuple.
- T2
Het type van het tweede onderdeel van de tuple.
- T3
Het type van het derde onderdeel van de tuple.
- Overname
-
Tuple<T1,T2,T3>
- Kenmerken
- Implementeringen
Opmerkingen
Een tuple is een gegevensstructuur met een specifiek aantal en een bepaalde reeks waarden. De Tuple<T1,T2,T3> klasse vertegenwoordigt een 3-tuple of drievoudig, een tuple met drie onderdelen.
U kunt een Tuple<T1,T2,T3> object instantiëren door de Tuple<T1,T2,T3> constructor of de statische Tuple.Create<T1,T2,T3>(T1, T2, T3) methode aan te roepen. U kunt de waarden van de onderdelen van de tuple ophalen met behulp van de alleen-lezen Item1- Item2en Item3 exemplaareigenschappen.
Tuples worden op vier verschillende manieren gebruikt:
Eén set gegevens weergeven. Een tuple kan bijvoorbeeld een databaserecord vertegenwoordigen en de bijbehorende onderdelen kunnen afzonderlijke velden van de record vertegenwoordigen.
Om eenvoudig toegang te bieden tot en manipulatie van een gegevensset. In het volgende voorbeeld wordt een matrix gedefinieerd van Tuple<T1,T2,T3> objecten die de namen van leerlingen/studenten, hun gemiddelde testscores en het aantal uitgevoerde tests bevatten. De matrix wordt doorgegeven aan de
ComputeStatisticsmethode, waarmee het gemiddelde en de standaarddeviatie van de testscores worden berekend.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)Als u meerdere waarden wilt retourneren uit een methode zonder gebruik te maken van
outparameters (in C#) ofByRefparameters (in Visual Basic). Het vorige voorbeeld retourneert bijvoorbeeld de statistieken van de samenvattingstestscore in een Tuple<T1,T2,T3> object.Meerdere waarden doorgeven aan een methode via één parameter. De Thread.Start(Object) methode heeft bijvoorbeeld één parameter waarmee u één waarde kunt opgeven voor de methode die de thread tijdens het opstarten uitvoert. Als u een Tuple<T1,T2,T3> object opgeeft als het methodeargument, kunt u de opstartroutine van de thread opgeven met drie gegevensitems.
Constructors
| Name | Description |
|---|---|
| Tuple<T1,T2,T3>(T1, T2, T3) |
Initialiseert een nieuw exemplaar van de Tuple<T1,T2,T3> klasse. |
Eigenschappen
| Name | Description |
|---|---|
| Item1 |
Hiermee haalt u de waarde op van het eerste onderdeel van het huidige Tuple<T1,T2,T3> object. |
| Item2 |
Hiermee haalt u de waarde op van het tweede onderdeel van het huidige Tuple<T1,T2,T3> object. |
| Item3 |
Hiermee haalt u de waarde op van het derde onderdeel van het huidige Tuple<T1,T2,T3> object. |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Retourneert een waarde die aangeeft of het huidige Tuple<T1,T2,T3> object gelijk is aan een opgegeven object. |
| GetHashCode() |
Retourneert de hashcode voor het huidige Tuple<T1,T2,T3> object. |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die de waarde van dit Tuple<T1,T2,T3> exemplaar vertegenwoordigt. |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| IComparable.CompareTo(Object) |
Vergelijkt het huidige Tuple<T1,T2,T3> object met een opgegeven object en retourneert een geheel getal dat aangeeft of het huidige object zich vóór, na of op dezelfde positie bevindt als het opgegeven object in de sorteervolgorde. |
| IStructuralComparable.CompareTo(Object, IComparer) |
Vergelijkt het huidige Tuple<T1,T2,T3> object met een opgegeven object met behulp van een opgegeven vergelijkingsfunctie en retourneert een geheel getal dat aangeeft of het huidige object zich vóór, na of op dezelfde positie bevindt als het opgegeven object in de sorteervolgorde. |
| IStructuralEquatable.Equals(Object, IEqualityComparer) |
Retourneert een waarde die aangeeft of het huidige Tuple<T1,T2,T3> object gelijk is aan een opgegeven object op basis van een opgegeven vergelijkingsmethode. |
| IStructuralEquatable.GetHashCode(IEqualityComparer) |
Berekent de hashcode voor het huidige Tuple<T1,T2,T3> object met behulp van een opgegeven berekeningsmethode. |
| ITuple.Item[Int32] |
Hiermee haalt u de waarde van het opgegeven |
| ITuple.Length |
Hiermee wordt het aantal elementen in de |
Extensiemethoden
| Name | Description |
|---|---|
| Deconstruct<T1,T2,T3>(Tuple<T1,T2,T3>, T1, T2, T3) |
Hiermee wordt een tuple met drie elementen in afzonderlijke variabelen gedeconstrueerd. |
| ToValueTuple<T1,T2,T3>(Tuple<T1,T2,T3>) |
Converteert een exemplaar van de |