Parece que a consola encerra automaticamente após selecionar a opção 2 porque o código não retorna ao loop principal depois de listar as bandas.
Para resolver isso, você pode adicionar um loop ao redor do menu principal para que o programa continue executando até que o usuário escolha a opção de sair.
using System;
using System.Collections.Generic;
using System.Threading;
void NomeApp() {
Console.WriteLine(@"
░██████╗░█████╗░██████╗░███████╗███████╗███╗░░██╗░██████╗░█████╗░██╗░░░██╗███╗░░██╗██████╗░
██╔════╝██╔══██╗██╔══██╗██╔════╝██╔════╝████╗░██║██╔════╝██╔══██╗██║░░░██║████╗░██║██╔══██╗
╚█████╗░██║░░╚═╝██████╔╝█████╗░░█████╗░░██╔██╗██║╚█████╗░██║░░██║██║░░░██║██╔██╗██║██║░░██║
░╚═══██╗██║░░██╗██╔══██╗██╔══╝░░██╔══╝░░██║╚████║░╚═══██╗██║░░██║██║░░░██║██║╚████║██║░░██║
██████╔╝╚█████╔╝██║░░██║███████╗███████╗██║░╚███║██████╔╝╚█████╔╝╚██████╔╝██║░╚███║██████╔╝
╚═════╝░░╚════╝░╚═╝░░╚═╝╚══════╝╚══════╝╚═╝░░╚══╝╚═════╝░░╚════╝░░╚═════╝░╚═╝░░╚══╝╚═════╝░");
}
void MensagemBoasVindas() {
Console.WriteLine("\nBem-vindo :)");
}
void Menu() {
Console.WriteLine("Selecione uma opção:");
Console.WriteLine("1. Criar banda;");
Console.WriteLine("2. Listagem;");
Console.WriteLine("3. Avaliar Banda;");
Console.WriteLine("4. Mostrar avaliação da banda;");
Console.WriteLine("0. Sair;");
}
void PaginaInicial() {
NomeApp();
Console.WriteLine("");
MensagemBoasVindas();
Console.WriteLine("\n");
Menu();
}
List<string> ListadeBandas = new List<string> { "U2", "Coldplay", "Imagine Dragons" };
void CriarBanda() {
Console.Clear();
Console.WriteLine("Criação de banda:");
Console.Write("Nome da banda: ");
string nomeBanda = Console.ReadLine()!;
ListadeBandas.Add(nomeBanda);
Console.WriteLine($"A banda \"{nomeBanda}\" foi criada com sucesso!");
Thread.Sleep(1500);
Console.Clear();
}
void ListarBandas() {
Console.Clear();
Console.WriteLine("Listagem de Bandas");
Console.WriteLine("");
foreach (string banda in ListadeBandas) {
Console.WriteLine(banda);
}
Console.WriteLine("\nPressione qualquer tecla para voltar ao menu...");
Console.ReadKey();
Console.Clear();
}
bool continuar = true;
while (continuar) {
PaginaInicial();
Console.WriteLine();
Console.Write("Opção: ");
int opcao = int.Parse(Console.ReadLine()!);
switch (opcao) {
case 1: CriarBanda(); break;
case 2: ListarBandas(); break;
case 3: Console.WriteLine("Avaliar banda:"); break;
case 4: Console.WriteLine("Avaliação da banda (mostrar):"); break;
case 0: Console.WriteLine("Sair!"); continuar = false; break;
default: Console.WriteLine("Opção inválida"); break;
}
}
Console.WriteLine("Pressione Enter para sair...");
Console.ReadLine();