Ler em inglês

Compartilhar via


Tuple<T1,T2,T3,T4> Classe

Definição

Representa uma tupla de 4 ou quádrupla.

public class Tuple<T1,T2,T3,T4> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
public class Tuple<T1,T2,T3,T4> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple
[System.Serializable]
public class Tuple<T1,T2,T3,T4> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable

Parâmetros de tipo

T1

O tipo do primeiro componente da tupla.

T2

O tipo do segundo componente da tupla.

T3

O tipo do terceiro componente da tupla.

T4

O tipo do quarto componente da tupla.

Herança
Tuple<T1,T2,T3,T4>
Atributos
Implementações

Comentários

Tupla é uma estrutura de dados que possui um número específico e uma sequência de valores. A Tuple<T1,T2,T3,T4> classe representa uma tupla de 4 ou quádruplo, que é uma tupla que tem quatro componentes.

Você pode criar uma instância de um Tuple<T1,T2,T3,T4> objeto chamando o Tuple<T1,T2,T3,T4> construtor ou o método estático Tuple.Create<T1,T2,T3,T4>(T1, T2, T3, T4) . Você pode recuperar o valor dos componentes da tupla usando as propriedades somente Item1Item2Item3leitura e Item4 instância.

As tuplas costumam ser usadas de quatro maneiras diferentes:

  • Para representar um único conjunto de dados. Por exemplo, uma tupla pode representar um registro de banco de dados, e seus componentes podem representar campos individuais do registro.

  • Para fornecer acesso fácil a, e a manipulação de um conjunto de dados. O exemplo a seguir define uma matriz de Tuple<T1,T2,T3,T4> objetos que contêm os nomes dos arremessadores de beisebol, o número de innings que eles lançaram e o número de corridas ganhas (corridas que marcaram sem erros de fielding) e acertos que eles desistiram. A matriz é passada para o método, que calcula a ComputeStatistics média de execução obtida de cada arremessador (o número médio de corridas desapuradas em um jogo de nove innings), e o número médio de acertos desistidos por inning. O método também usa essas duas médias para calcular uma média de eficácia hipotética.

    using System;
    using System.Collections.Generic;
    
    public class Example
    {
       public static void Main()
       {
          Tuple<string, decimal, int, int>[] pitchers  =  
               { Tuple.Create("McHale, Joe", 240.1m, 221, 96),
                 Tuple.Create("Paul, Dave", 233.1m, 231, 84), 
                 Tuple.Create("Williams, Mike", 193.2m, 183, 86),
                 Tuple.Create("Blair, Jack", 168.1m, 146, 65), 
                 Tuple.Create("Henry, Walt", 140.1m, 96, 30),
                 Tuple.Create("Lee, Adam", 137.2m, 109, 45),
                 Tuple.Create("Rohr, Don", 101.0m, 110, 42) };
          Tuple<string, double, double, double>[] results= ComputeStatistics(pitchers);
    
          // Display the results.
          Console.WriteLine("{0,-20} {1,9} {2,11} {3,15}\n", 
                            "Pitcher", "ERA", "Hits/Inn.", "Effectiveness");
          foreach (var result in results)
             Console.WriteLine("{0,-20} {1,9:F2} {2,11:F2} {3,15:F2}",  
                            result.Item1, result.Item2, result.Item3, result.Item4);
       }
    
       private static Tuple<string, double, double, double>[] ComputeStatistics(Tuple<string, decimal, int, int>[] pitchers)
       {    
          var list = new List<Tuple<string, double, double, double>>();
          Tuple<string, double, double, double> result;
    
          foreach (var pitcher in pitchers)
          {
             // Decimal portion of innings pitched represents 1/3 of an inning
             double innings = (double) Math.Truncate(pitcher.Item2);
             innings = innings + (((double)pitcher.Item2 - innings) * .33);
             
             double ERA = pitcher.Item4/innings * 9;
             double hitsPerInning = pitcher.Item3/innings;
             double EI = (ERA * 2 + hitsPerInning * 9)/3;
             result = new Tuple<string, double, double, double>
                               (pitcher.Item1, ERA, hitsPerInning, EI);
             list.Add(result);
          }
          return list.ToArray();
       }
    }
    // The example displays the following output;
    //       Pitcher                    ERA   Hits/Inn.   Effectiveness
    //       
    //       McHale, Joe               3.60        0.92            5.16
    //       Paul, Dave                3.24        0.99            5.14
    //       Williams, Mike            4.01        0.95            5.52
    //       Blair, Jack               3.48        0.87            4.93
    //       Henry, Walt               1.93        0.69            3.34
    //       Lee, Adam                 2.95        0.80            4.36
    //       Rohr, Don                 3.74        1.09            5.76
    
  • Para retornar vários valores de um método sem o uso de parâmetros out (no C#) ou de parâmetros ByRef (no Visual Basic). Por exemplo, o exemplo anterior retorna suas estatísticas computadas, juntamente com o nome do jarro, em uma matriz de Tuple<T1,T2,T3,T4> objetos.

  • Para passar vários valores para um método por meio de um parâmetro único. Por exemplo, o método Thread.Start(Object) tem um único parâmetro que permite fornecer um valor ao método que o thread executa na inicialização. Se você fornecer um Tuple<T1,T2,T3,T4> objeto como o argumento do método, poderá fornecer a rotina de inicialização do thread com quatro itens de dados.

Construtores

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

Inicializa uma nova instância da classe Tuple<T1,T2,T3,T4>.

Propriedades

Item1

Obtém o valor do primeiro componente do objeto Tuple<T1,T2,T3,T4> atual.

Item2

Obtém o valor do segundo componente do objeto Tuple<T1,T2,T3,T4> atual.

Item3

Obtém o valor do terceiro componente do objeto Tuple<T1,T2,T3,T4> atual.

Item4

Obtém o valor do quarto componente do objeto Tuple<T1,T2,T3,T4> atual.

Métodos

Equals(Object)

Retorna um valor que indica se o objeto Tuple<T1,T2,T3,T4> atual é igual a um objeto especificado.

GetHashCode()

Retorna o código hash para o objeto Tuple<T1,T2,T3,T4> atual.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o valor desta instância Tuple<T1,T2,T3,T4>.

Implantações explícitas de interface

IComparable.CompareTo(Object)

Compara o objeto Tuple<T1,T2,T3,T4> atual a um objeto especificado e retorna um inteiro que indica se o objeto atual está antes, depois ou na mesma posição que o objeto especificado na ordem de classificação.

IStructuralComparable.CompareTo(Object, IComparer)

Compara o objeto Tuple<T1,T2,T3,T4> atual com um objeto especificado usando um comparador especificado e retorna um inteiro que indica se o objeto atual está antes, depois ou na mesma posição do objeto especificado na ordem de classificação.

IStructuralEquatable.Equals(Object, IEqualityComparer)

Retorna um valor que indica se o objeto Tuple<T1,T2,T3,T4> atual é igual ao objeto especificado com base em um determinado método de comparação.

IStructuralEquatable.GetHashCode(IEqualityComparer)

Calcula o código hash para o objeto Tuple<T1,T2,T3,T4> atual usando um método de computação especificado.

ITuple.Item[Int32]

Obtém o valor do elemento Tuple especificado.

ITuple.Length

Obtém o número de elementos no Tuple.

Métodos de Extensão

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

Desconstrói uma tupla com quatro elementos em variáveis separadas.

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

Converte uma instância da classe Tuple em uma instância da estrutura ValueTuple.

Aplica-se a

Confira também