1
resposta

Erro totalmente desconhecido

using System.Linq;

string mensagemDeBoasVindas = "Boas vindas ao Screen Sound";
//List<string> listaDasBandas = new List<string> { "U2", "The Beatles", "Calypso"};  
Dictionary<string, List<int>> bandasRegistradas = new Dictionary<string, List<int>>();
bandasRegistradas.Add("Linkin Park", new List<int> { 10, 8, 6 });
bandasRegistradas.Add("a", new List<int>());

void ExibirLogo()
{
    Console.WriteLine(@"
    .....
    Console.WriteLine(mensagemDeBoasVindas);
}

void ExibirOpcoesDoMenu()
{
    ExibirLogo();
    Console.WriteLine("\nDigite 1 para registrar uma banda");
    Console.WriteLine("Digite 2 para mostrar todas as bandas");
    Console.WriteLine("Digite 3 para avaliar uma banda");
    Console.WriteLine("Digite 4 para exibir a média de uma banda");
    Console.WriteLine("Digite -1 para sair");

    Console.Write("\nDigite a sua opção: ");

    string opcaoEscolhida = Console.ReadLine()!;

    int opcaoEscolhidaNumerica = int.Parse(opcaoEscolhida);

    switch (opcaoEscolhidaNumerica)
    {
        case 1:
            RegistrarBanda();
            break;

        case 2:
            MostrarBandasRegistradas();
            break;

        case 3:
            AvaliarUmaBanda();
            break;

        case 4:
            ExibirMedia();
            break;

        case -1:
            Console.WriteLine("Tchau tchau :)");
            break;

        default:
            Console.WriteLine("Opção inválida");
            break;

    }
}

void RegistrarBanda()
{
    Console.Clear();

    ExibirTituloDaOpcao("Registro das bandas");
    Console.Write("Digite o nome da banda que deseja registrar: ");

    string nomeDaBanda = Console.ReadLine()!;
    bandasRegistradas.Add(nomeDaBanda, new List<int>());

    Console.WriteLine($"A banda {nomeDaBanda} foi registrada com sucesso!");

    Thread.Sleep(4000);
    Console.Clear();

    ExibirOpcoesDoMenu();
}

void MostrarBandasRegistradas()
{
    Console.Clear();
    ExibirTituloDaOpcao("Exibindo todas as bandas registradas na nossa aplicação");

    foreach (string banda in bandasRegistradas.Keys)
    {
        Console.WriteLine($"Banda: {banda}");
    }

    Console.WriteLine("\nDigite uma tecla para voltar ao menu principal");

    Console.ReadKey();
    Console.Clear();

    ExibirOpcoesDoMenu();
}

void ExibirTituloDaOpcao(string titulo)
{
    int quantidadeDeLetras = titulo.Length;

    string asteriscos = string.Empty.PadLeft(quantidadeDeLetras, '*');

    Console.WriteLine(asteriscos);
    Console.WriteLine(titulo);
    Console.WriteLine(asteriscos + "\n");
}

void AvaliarUmaBanda()
{

    Console.Clear();

    ExibirTituloDaOpcao("Avaliar banda");
    Console.Write("Digite o nome da banda que deseja avaliar: ");

    string nomeDaBanda = Console.ReadLine()!;
    if (bandasRegistradas.ContainsKey(nomeDaBanda))
    {
        Console.Write($"Qual a nota que a banda {nomeDaBanda} merece: ");
        int nota = int.Parse(Console.ReadLine()!);
        bandasRegistradas[nomeDaBanda].Add(nota);

        Console.WriteLine($"\nA nota {nota} foi registrada com sucesso para a banda {nomeDaBanda}");

        Thread.Sleep(2000);
        Console.Clear();

        ExibirOpcoesDoMenu();
    }
    else
    {
        Console.WriteLine($"\nA banda {nomeDaBanda} não foi encontrada!");
        Console.WriteLine("Digite uma tecla para voltar ao menu principal");

        Console.ReadKey();

        Console.Clear();
        ExibirOpcoesDoMenu();
    }

}

void ExibirMedia()
{
    Console.Clear();
    ExibirTituloDaOpcao("Exibir media da banda");

    Console.Write("Digite o nome da banda que deseja exibir a media: ");

    string nomeDaBanda = Console.ReadLine()!;

    if (bandasRegistradas.ContainsKey(nomeDaBanda))
    {
        List<int> notasDaBanda = bandasRegistradas[nomeDaBanda];
        Console.WriteLine($"\nA média da banda {nomeDaBanda} é {notasDaBanda.Average()}.");
        Console.WriteLine("Digite uma tecla para votar ao menu principal");
        Console.ReadKey();
        Console.Clear();
        ExibirOpcoesDoMenu();

    } else
    {
        Console.WriteLine($"\nA banda {nomeDaBanda} não foi encontrada!");

        Console.WriteLine("Digite uma tecla para voltar ao menu principal");

        Console.ReadKey();

        Console.Clear();
        ExibirOpcoesDoMenu();
    }
 

}

ExibirOpcoesDoMenu();

O codigo esta igual ao do video, porem ao executar a funcao, o console trava e uma mensagem de erro aparece: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Vinícius,

O problema é que a DLL (Dynamic Link Library) relacionada com o "System.Linq" deve estar faltando. Você precisa adicionar manualmente essa biblioteca a seu projeto.

Por favor, veja os links:

=============================================

Visual Studio Does not recognize System.Linq

  • Step 1) Go to your Project Solution Explorer and Select References
  • Step 2) Right click it on References and Select Add Reference... a form will appear
  • Step 3) Search linq on Search bar
  • Step 4) Now Select/tick the System.XML.Linq checkbox
  • Step 5) Click Ok

https://stackoverflow.com/questions/24659934/visual-studio-does-not-recognize-system-linq#:~:text=Step%201%29%20Go%20to%20your%20Project%20Solution%20Explorer,Select%2Ftick%20the%20System.XML.Linq%20checkbox%20Step%205%29%20Click%20Ok

=============================================

Where can I find the System.Linq.Dynamic dll?

https://stackoverflow.com/questions/3991108/where-can-i-find-the-system-linq-dynamic-dll

=============================================

Espero que funcione.

[]'s,

Fabio I.