Esercizi C#

Unire i dati di clienti e ordini con LINQ Join in C#

In questa lezione unirai un elenco di clienti con un elenco di ordini in base al codice cliente usando LINQ Join.

Introduzione

I dati collegati stanno spesso in elenchi separati, per esempio un elenco di clienti e uno di ordini. Il metodo Join di LINQ unisce i due elenchi in base a una chiave comune, in modo simile al JOIN di un database.

Il metodo Join riceve quattro parametri: l'elenco da unire, come ottenere la chiave dal cliente (c => c.Id), come ottenere la chiave dall'ordine (o => o.CustomerId) e come costruire il risultato di ogni coppia corrispondente. Ogni ordine viene collegato al cliente con lo stesso codice, ottenendo Ada: 25 | Lin: 40.

Esempio C# eseguibile

C#
Esegui il codice →
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));
    }
}
Risultato dell'esecuzione
Ada: 25 | Lin: 40

Esercitati con il debugger

Metti un breakpoint su un'assegnazione o una condizione importante, fai clic su Debug ed esamina i valori locali prima di passare alla riga successiva.

Esercitati con una sfida

Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.

Tutte le sfide