C# 演習

C#のLINQで学生をグループ化する

このレッスンでは、LINQを使って学生を評価ごとにグループ化し、グループごとの平均点を計算します。

はじめに

LINQのGroupByメソッドは、評価のAやBのようなキーにもとづいて、リストをグループに分けます。その後、グループごとに件数を数えたり、合計や平均を計算したりできます。

GroupBy(s => s.Grade)は学生をAとBのグループに分け、OrderBy(g => g.Key)はグループを名前順に並べます。各グループは評価の名前を表すKeyプロパティを持ち、AverageのようなLINQのメソッドをそのまま使えます。グループAの平均点は93.0、グループBは84.0です。

実行できる C# の例

C#
コードを実行 →
Program.cs
using System;
using System.Linq;
record Student(string Name, string Grade, int Score);
class Program
{
    static void Main()
    {
        var students = new[] { new Student("Ada", "A", 95), new Student("Lin", "B", 84), new Student("Grace", "A", 91) };
        foreach (var group in students.GroupBy(s => s.Grade).OrderBy(g => g.Key))
            Console.WriteLine($"{group.Key}: {group.Average(s => s.Score):F1}");
    }
}
実行結果
A: 93.0
B: 84.0

デバッガーで練習する

大事な代入や条件にブレークポイントを置いて Debug を押し、次の行に進む前にローカル変数の値を確かめましょう。

チャレンジで練習する

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

すべてのチャレンジ