using System.Collections.Generic;
static List<string> aFazer = new List<string>();
static List<string> emProgresso = new List<string>();
static List<string> concluido = new List<string>();
Console.WriteLine("Menu de Opções:");
Console.WriteLine("1 - Adicionar nova tarefa");
Console.WriteLine("2 - Exibir tarefas");
Console.WriteLine("3 - Mover tarefa");
Console.WriteLine("4 - Sair");
Console.Write("Escolha uma opção: ");
if (!int.TryParse(Console.ReadLine(), out opcao))
Console.WriteLine("Entrada inválida. Por favor, insira um número.");
Console.WriteLine("Saindo...");
Console.WriteLine("Opção inválida, tente novamente.");
static void AdicionarTarefa()
Console.Write("Digite o nome da nova tarefa: ");
string tarefa = Console.ReadLine();
if (!string.IsNullOrWhiteSpace(tarefa))
Console.WriteLine("Tarefa adicionada à lista 'A Fazer'.");
Console.WriteLine("Tarefa não pode ser vazia.");
static void ExibirTarefas()
Console.WriteLine("\nTarefas 'A Fazer':");
Console.WriteLine("Nenhuma tarefa na lista.");
aFazer.ForEach(tarefa => Console.WriteLine(tarefa));
Console.WriteLine("\nTarefas 'Em Progresso':");
if (emProgresso.Count == 0)
Console.WriteLine("Nenhuma tarefa na lista.");
emProgresso.ForEach(tarefa => Console.WriteLine(tarefa));
Console.WriteLine("\nTarefas 'Concluídas':");
if (concluido.Count == 0)
Console.WriteLine("Nenhuma tarefa na lista.");
concluido.ForEach(tarefa => Console.WriteLine(tarefa));
static void MoverTarefa()
Console.WriteLine("Escolha a lista de origem:");
Console.WriteLine("1 - A Fazer");
Console.WriteLine("2 - Em Progresso");
Console.Write("Digite o número da lista: ");
if (!int.TryParse(Console.ReadLine(), out int origem))
Console.WriteLine("Entrada inválida. Por favor, insira um número.");
List<string> listaOrigem = null;
List<string> listaDestino = null;
string nomeOrigem = "", nomeDestino = "";
listaDestino = emProgresso;
nomeDestino = "Em Progresso";
listaOrigem = emProgresso;
listaDestino = concluido;
nomeOrigem = "Em Progresso";
nomeDestino = "Concluídas";
Console.WriteLine("Lista de origem inválida.");
if (listaOrigem.Count == 0)
Console.WriteLine($"Nenhuma tarefa na lista '{nomeOrigem}'.");
Console.WriteLine($"Tarefas na lista '{nomeOrigem}':");
for (int i = 0; i < listaOrigem.Count; i++)
Console.WriteLine($"{i + 1} - {listaOrigem[i]}");
Console.Write("Escolha o número da tarefa para mover: ");
if (!int.TryParse(Console.ReadLine(), out int tarefaIndex) || tarefaIndex < 1 || tarefaIndex > listaOrigem.Count)
Console.WriteLine("Tarefa inválida.");
string tarefa = listaOrigem[tarefaIndex];
listaOrigem.RemoveAt(tarefaIndex);
listaDestino.Add(tarefa);
Console.WriteLine($"Tarefa movida para '{nomeDestino}'.");