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
- Fundamentos das tuplas de valor
- Elementos nomeados de tuplas
- Desconstrução
- Tuplas como valores de retorno de métodos