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
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: 40Esercitati con il debugger
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