Lire en anglais

Partager via


Tuple<T1,T2,T3> Classe

Définition

Représente un objet de 3 tuples, ou triple.

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

Paramètres de type

T1

Type du premier composant du tuple.

T2

Type du second composant du tuple.

T3

Type du troisième composant du tuple.

Héritage
Tuple<T1,T2,T3>
Attributs
Implémente

Remarques

Un tuple est une structure de données qui a un nombre spécifique et une séquence de valeurs. La Tuple<T1,T2,T3> classe représente un tuple de 3 tuples, ou triple, qui est un tuple qui a trois composants.

Vous pouvez instancier un Tuple<T1,T2,T3> objet en appelant le Tuple<T1,T2,T3> constructeur ou la méthode statique Tuple.Create<T1,T2,T3>(T1, T2, T3) . Vous pouvez récupérer les valeurs des composants du tuple à l’aide des propriétés de lecture seule Item1, Item2et Item3 d’instance.

Les tuples sont couramment utilisés de quatre façons différentes :

  • Pour représenter un seul ensemble de données. Par exemple, un tuple peut représenter un enregistrement de base de données et ses composants peuvent représenter des champs individuels de l’enregistrement.

  • Pour faciliter l’accès et la manipulation d’un jeu de données. L’exemple suivant définit un tableau d’objets Tuple<T1,T2,T3> qui contiennent les noms des étudiants, leurs scores de test moyens et le nombre de tests effectués. Le tableau est passé à la ComputeStatistics méthode, qui calcule la moyenne et l’écart type des scores de test.

    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)
    
  • Pour renvoyer plusieurs valeurs à partir d’une méthode sans utiliser de out paramètres (en C#) ou ByRef de paramètres (dans Visual Basic). Par exemple, l’exemple précédent retourne ses statistiques de score de test résumé dans un Tuple<T1,T2,T3> objet.

  • Pour transmettre plusieurs valeurs à une méthode via un seul paramètre. Par exemple, la Thread.Start(Object) méthode a un seul paramètre qui vous permet de fournir une valeur à la méthode que le thread s’exécute au démarrage. Si vous fournissez un Tuple<T1,T2,T3> objet comme argument de méthode, vous pouvez fournir la routine de démarrage du thread avec trois éléments de données.

Constructeurs

Tuple<T1,T2,T3>(T1, T2, T3)

Initialise une nouvelle instance de la classe Tuple<T1,T2,T3>.

Propriétés

Item1

Obtient la valeur du premier composant de l'objet Tuple<T1,T2,T3> actif.

Item2

Obtient la valeur du deuxième composant de l'objet Tuple<T1,T2,T3> actif.

Item3

Obtient la valeur du troisième composant de l'objet Tuple<T1,T2,T3> actif.

Méthodes

Equals(Object)

Retourne une valeur qui indique si l'objet Tuple<T1,T2,T3> actuel est égal à un objet spécifié.

GetHashCode()

Retourne le code de hachage pour l'objet Tuple<T1,T2,T3> actuel.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente la valeur de cette instance Tuple<T1,T2,T3>.

Implémentations d’interfaces explicites

IComparable.CompareTo(Object)

Compare l’objet Tuple<T1,T2,T3> actuel à un objet spécifié et renvoie un entier qui indique si l’objet actuel est avant, après ou à la même position que l’objet spécifié dans l’ordre de tri.

IStructuralComparable.CompareTo(Object, IComparer)

Compare l'objet Tuple<T1,T2,T3> actif à un objet spécifié à l'aide d'un comparateur spécifié et retourne un entier qui indique si l'objet actif précède, suit ou est dans la même position que l'objet spécifié dans l'ordre de tri.

IStructuralEquatable.Equals(Object, IEqualityComparer)

Retourne une valeur qui indique si l'objet Tuple<T1,T2,T3> actif est égal à un objet spécifié selon une méthode de comparaison spécifiée.

IStructuralEquatable.GetHashCode(IEqualityComparer)

Calcule le code de hachage pour l'objet Tuple<T1,T2,T3> actif à l'aide d'une méthode de calcul spécifiée.

ITuple.Item[Int32]

Obtient la valeur de l’élément Tuple spécifié.

ITuple.Length

Obtient le nombre d’éléments dans Tuple.

Méthodes d’extension

Deconstruct<T1,T2,T3>(Tuple<T1,T2,T3>, T1, T2, T3)

Décompose un tuple avec 3 éléments dans des variables distinctes.

ToValueTuple<T1,T2,T3>(Tuple<T1,T2,T3>)

Convertit une instance de la classe Tuple en une instance de la structure ValueTuple.

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Voir aussi