Exercícios de C#

Lista de tarefas com List<T> em C#

Nesta lição, você vai gerenciar uma lista de tarefas com records e List<T> e filtrar as tarefas ainda não concluídas.

Introdução

Records e coleções genéricas como List<T> são uma forma enxuta de montar um modelo de dados na memória. Cada tarefa é representada por um record com título e status de conclusão, e List<TaskItem> guarda todas as tarefas.

O método FindAll recebe uma condição em forma de lambda e retorna uma nova lista apenas com as tarefas que a atendem, aqui as que têm Done igual a false. O resultado continua sendo objetos TaskItem com tipo completo, então dá para usar task.Title direto. O programa imprime Learn events.

Veja como funciona

Use os botões para mudar a lista e veja os índices se atualizarem. Mova start e stop para ver quais itens uma fatia pega.

Exemplo de C# executável

C#
Rodar código →
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);
    }
}
Resultado da execução
Learn events

Pratique com o depurador

Coloque um breakpoint em uma atribuição ou condição importante, clique em Debug e veja os valores das variáveis locais antes de passar para a próxima linha.

Pratique com um desafio

Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.

Todos os desafios