C# 演習

C#のList<T>でタスクの一覧を管理する

このレッスンでは、レコードとList<T>でタスクの一覧を管理し、まだ終わっていないタスクを取り出します。

はじめに

レコードとList<T>のようなジェネリックなコレクションは、メモリ上のデータモデルをすっきり作るのにぴったりです。各タスクはタイトルと完了状態を持つレコードで表し、List<TaskItem>がすべてのタスクを保存します。

FindAllメソッドはラムダの形の条件を受け取り、条件を満たすタスクだけを集めた新しいリストを返します。ここではDoneがfalseのタスクです。結果は型の情報を持ったままのTaskItemオブジェクトなので、そのままtask.Titleを使えます。プログラムはLearn eventsと表示します。

動きで理解する

ボタンでリストを変更し、インデックスが更新される様子を見ましょう。startとstopを動かすと、スライスで取り出される要素がわかります。

実行できる C# の例

C#
コードを実行 →
Program.cs
using System;
using System.Collections.Generic;
record TaskItem(string Title, bool Done);
class Program
{
    static void Main()
    {
        var tasks = new List<TaskItem> { new("Learn LINQ", true), new("Learn events", false) };
        foreach (var task in tasks.FindAll(task => !task.Done)) Console.WriteLine(task.Title);
    }
}
実行結果
Learn events

デバッガーで練習する

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

チャレンジで練習する

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

すべてのチャレンジ