Ejercicios de C#

Unir datos de clientes y pedidos con LINQ Join en C#

En esta lección vas a unir una lista de clientes con una lista de pedidos a partir del código de cliente con LINQ Join.

Introducción

Los datos relacionados suelen estar en listas separadas, por ejemplo una lista de clientes y otra de pedidos. El método Join de LINQ junta esas dos listas según una clave común, como un JOIN en una base de datos.

El método Join recibe cuatro parámetros: la lista que se une, cómo obtener la clave del cliente (c => c.Id), cómo obtener la clave del pedido (o => o.CustomerId) y cómo construir el resultado para cada pareja que coincide. Cada pedido se empareja con el cliente que tiene el mismo código, lo que da Ada: 25 | Lin: 40.

Ejemplo de C# ejecutable

C#
Ejecutar 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 de la ejecución
Ada: 25 | Lin: 40

Practica con el depurador

Pon un punto de interrupción en una asignación o condición importante, pulsa Debug y revisa los valores locales antes de pasar a la siguiente línea.

Practica con un reto

Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.

Todos los retos