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
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));
}
}
Ada: 25 | Lin: 40Pratique com o depurador
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