Exercícios de C#

Juntar dados de clientes e pedidos com LINQ Join em C#

Nesta lição, você vai juntar uma lista de clientes com uma lista de pedidos pelo código do cliente usando LINQ Join.

Introdução

Dados relacionados costumam ficar em listas separadas, por exemplo uma lista de clientes e outra de pedidos. O método Join do LINQ junta as duas listas por uma chave em comum, de forma parecida com o JOIN de um banco de dados.

O método Join recebe quatro parâmetros: a lista a juntar, como obter a chave do cliente (c => c.Id), como obter a chave do pedido (o => o.CustomerId) e como montar o resultado de cada par correspondente. Cada pedido é ligado ao cliente com o mesmo código, resultando em Ada: 25 | Lin: 40.

Exemplo de C# executável

C#
Rodar código →
Program.cs
using System;
using System.Linq;
record Customer(int Id, string Name);
record Order(int CustomerId, decimal Total);
class Program
{
    static void Main()
    {
        var customers = new[] { new Customer(1, "Ada"), new Customer(2, "Lin") };
        var orders = new[] { new Order(2, 40m), new Order(1, 25m) };
        var rows = customers.Join(orders, c => c.Id, o => o.CustomerId, (c, o) => $"{c.Name}: {o.Total}");
        Console.WriteLine(string.Join(" | ", rows));
    }
}
Resultado da execução
Ada: 25 | Lin: 40

Pratique com o depurador

Coloque um breakpoint em uma atribuição ou condição importante, clique em Debug e veja os valores das variáveis locais antes de passar para a próxima linha.

Pratique com um desafio

Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.

Todos os desafios