Соединение данных клиентов и заказов с LINQ Join в C#
В этом уроке вы соедините список клиентов со списком заказов по коду клиента с помощью LINQ Join.
Введение
Связанные данные часто лежат в разных списках, например в списке клиентов и списке заказов. Метод Join в LINQ соединяет два списка по общему ключу, как JOIN в базе данных.
Метод Join принимает четыре параметра: список для соединения, способ получить ключ клиента (c => c.Id), способ получить ключ заказа (o => o.CustomerId) и способ построить результат для каждой совпавшей пары. Каждый заказ сопоставляется с клиентом с тем же кодом, и получается Ada: 25 | Lin: 40.
Пример на C#, который можно запустить
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: 40Практика с отладчиком
Попрактикуйтесь на задаче
Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.
Все задачи