Упражнения C#

Соединение данных клиентов и заказов с LINQ Join в C#

В этом уроке вы соедините список клиентов со списком заказов по коду клиента с помощью LINQ Join.

Введение

Связанные данные часто лежат в разных списках, например в списке клиентов и списке заказов. Метод Join в LINQ соединяет два списка по общему ключу, как JOIN в базе данных.

Метод Join принимает четыре параметра: список для соединения, способ получить ключ клиента (c => c.Id), способ получить ключ заказа (o => o.CustomerId) и способ построить результат для каждой совпавшей пары. Каждый заказ сопоставляется с клиентом с тем же кодом, и получается Ada: 25 | Lin: 40.

Пример на C#, который можно запустить

C#
Запустить код →
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));
    }
}
Результат выполнения
Ada: 25 | Lin: 40

Практика с отладчиком

Поставьте точку останова на важное присваивание или условие, нажмите Debug и посмотрите локальные значения, прежде чем перейти к следующей строке.

Попрактикуйтесь на задаче

Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.

Все задачи