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 리뷰를 받을 수 있습니다.

모든 챌린지