Tuple<T1,T2,T3> Klas

Definitie

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 ComputeStatistics methode, 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 out parameters (in C#) of ByRef parameters (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 Tuple element op.

ITuple.Length

Hiermee wordt het aantal elementen in de Tuple.

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 Tuple klasse naar een exemplaar van de ValueTuple structuur.

Van toepassing op

Zie ook