0Pricing
C# Academy · Aula

Fundamentos das tuplas de valor

Crie tuplas leves para agrupar dados.

Fundamentos das tuplas de valor é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 4 aulas no total.

O que é uma tupla?

Uma tupla agrupa vários valores em um único conjunto leve, sem definir uma classe. As tuplas de valor do C# usam parênteses: (int, string).

using System;

class Program
{
    static void Main()
    {
        (int, string) pair = (1, "one");
        Console.WriteLine(pair.Item1 + " = " + pair.Item2);
    }
}

Criando uma tupla de valor

Escreva os valores entre parênteses. O compilador infere o tipo da tupla a partir deles.

using System;

class Program
{
    static void Main()
    {
        var point = (3, 4);
        Console.WriteLine("x=" + point.Item1 + ", y=" + point.Item2);
    }
}

Acessando elementos: Item1, Item2

Os elementos de tuplas sem nome são acessados por meio de Item1, Item2, Item3 e assim por diante, na ordem.

using System;

class Program
{
    static void Main()
    {
        var rgb = (255, 128, 0);
        Console.WriteLine("R=" + rgb.Item1 + " G=" + rgb.Item2 + " B=" + rgb.Item3);
    }
}

Tuplas contêm tipos mistos

Cada elemento pode ter um tipo diferente. Uma tupla pode combinar números, textos, valores booleanos e muito mais.

using System;

class Program
{
    static void Main()
    {
        var user = ("Ada", 36, true);
        Console.WriteLine(user.Item1 + ", age " + user.Item2 + ", active=" + user.Item3);
    }
}

Tuplas são mutáveis

Os elementos de uma tupla de valor podem ser reatribuídos, pois cada ItemN é um campo gravável.

using System;

class Program
{
    static void Main()
    {
        var score = (player: "A", points: 0);
        score.points = 10;
        score.points += 5;
        Console.WriteLine(score.player + ": " + score.points);
    }
}

Tuplas como conjuntos locais

Tuplas são excelentes para agrupar temporariamente valores dentro de um método sem criar um tipo específico.

using System;

class Program
{
    static void Main()
    {
        var range = (min: 5, max: 50);
        int span = range.max - range.min;
        Console.WriteLine("Span: " + span);
    }
}

Comparando tuplas

As tuplas de valor permitem igualdade: duas tuplas são iguais quando todos os elementos correspondentes são iguais.

using System;

class Program
{
    static void Main()
    {
        var a = (1, 2);
        var b = (1, 2);
        var c = (1, 3);
        Console.WriteLine(a == b);
        Console.WriteLine(a == c);
    }
}

Aninhando tuplas

Um elemento de uma tupla pode ser outra tupla, permitindo criar pequenos grupos estruturados.

using System;

class Program
{
    static void Main()
    {
        var line = (start: (0, 0), end: (3, 4));
        Console.WriteLine("From " + line.start.Item1 + "," + line.start.Item2 +
            " to " + line.end.Item1 + "," + line.end.Item2);
    }
}

Tuplas em coleções

Você pode armazenar tuplas em uma lista para manter dados emparelhados juntos sem criar uma classe.

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var scores = new List<(string, int)>
        {
            ("Ann", 90),
            ("Bob", 85)
        };
        foreach (var s in scores)
            Console.WriteLine(s.Item1 + ": " + s.Item2);
    }
}

Semântica de valor

Uma tupla de valor é uma estrutura, portanto atribuí-la copia os valores. Alterar a cópia não afeta o original.

using System;

class Program
{
    static void Main()
    {
        var original = (n: 1);
        var copy = original;
        copy.n = 99;
        Console.WriteLine("original=" + original.n + ", copy=" + copy.n);
    }
}

Reunindo tudo

As tuplas de valor oferecem agrupamentos rápidos e tipados, ideais para dados de curta duração dentro de um método ou em uma lista simples.

using System;

class Program
{
    static void Main()
    {
        var result = (count: 3, total: 150);
        double average = (double)result.total / result.count;
        Console.WriteLine("Average: " + average.ToString("0.0"));
    }
}

Verificação rápida

Teste sua compreensão sobre tuplas de valor.

Recapitulação

Uma tupla de valor reúne vários valores entre parênteses, como (int, string), sem uma classe. Os elementos sem nome são acessados por meio de Item1 e Item2. Tuplas são estruturas mutáveis com semântica de valor e permitem igualdade. Elas são ideais para agrupamentos locais rápidos.

using System;

class Program
{
    static void Main()
    {
        var t = (1, "one", true);
        Console.WriteLine(t.Item1 + " " + t.Item2 + " " + t.Item3);
    }
}

Perguntas Frequentes

A aula “Fundamentos das tuplas de valor” é grátis?

Sim — o texto completo de “Fundamentos das tuplas de valor” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 4 aulas no total.

O que vou aprender em “Fundamentos das tuplas de valor”?

Crie tuplas leves para agrupar dados. Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C# Academy?

Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Fundamentos das tuplas de valor”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C# Academy?

Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fundamentos das tuplas de valor
  2. Elementos nomeados de tuplas
  3. Desconstrução
  4. Tuplas como valores de retorno de métodos
← Voltar para C# Academy