C# 演習

C#のLINQ Joinで顧客と注文のデータを結合する

このレッスンでは、LINQのJoinを使って、顧客の一覧と注文の一覧を顧客コードで結び付けます。

はじめに

関連するデータは、顧客の一覧と注文の一覧のように、別々のリストに保存されていることがよくあります。LINQのJoinメソッドは、共通のキーにもとづいて2つのリストを結び付けます。データベースのJOINに似た操作です。

Joinメソッドは4つの引数を受け取ります。結び付けるリスト、顧客からキーを取り出す方法(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 を押し、次の行に進む前にローカル変数の値を確かめましょう。

チャレンジで練習する

このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。

すべてのチャレンジ