Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Minha Solução?

Assim que fui testar minha aplicação eu percebi o seguinte erro por eu nao ter declarado uma lista e sim um tipo

Essa minha versão de codigo foi antes de eu corrigir com a do professor porem eu vi um erro que estava dando ao escolher nome de bandas com espaçamentos ex: Calypso rodava deboa porem linkin park dava erro de sintaxe no console. Agora minha pergunta é: O porque que isso ocorreu???

void CalculaMedia()
{
    Console.Clear();
    ExibirTituloDaOpcao("Calculo de Médias:");
    Console.Write("Por favor digite o nome da banda em que deseja consultar: ");
    string consultaBanda = Console.ReadLine()!;

    if (listaBanda.ContainsKey(consultaBanda))
    {
        double mediaBanda = listaBanda[consultaBanda].Average();
        Console.WriteLine($"A media da {consultaBanda} e de {mediaBanda}");

    } else
    {
        Console.WriteLine("Nao possui essa banda na lista.");
    }
    Console.ReadKey();
    Console.Clear();
    ExibeOpcoesDeMenu();
}
1 resposta
solução!

Olá Levi! Tudo bem?

Quando você menciona que bandas com espaços nos nomes, como "Linkin Park", causaram erro de sintaxe, isso geralmente está ligado a como a entrada de dados está sendo tratada.

No seu código, você está usando Console.ReadLine() para capturar o nome da banda digitado pelo usuário. Esta função lê a entrada como uma string completa até que a linha termine (ou seja, quando o usuário pressiona Enter). Isso significa que espaços dentro da string, como em "Linkin Park", são permitidos e devem ser tratados corretamente pelo programa.

O problema pode estar relacionado a como essa string é usada depois, especialmente se você estiver fazendo alguma operação que não espera espaços ou caracteres especiais. No entanto, olhando o trecho de código que você compartilhou, não parece haver uma manipulação direta que causaria erro apenas por ter espaços no nome. O método ContainsKey do dicionário listaBanda aceita strings com espaços sem problemas.

Uma possibilidade é que o erro de sintaxe não esteja no código que você mostrou, mas em outra parte do programa que não foi incluída aqui. Por exemplo, se em algum lugar do código você tentar usar essa string em um contexto que não aceita espaços sem tratamento adequado (como comandos SQL, nomes de arquivos, etc.), isso poderia causar erros.

Se o erro persistir, recomendo verificar:

  1. Se todos os locais onde consultaBanda é usado suportam strings com espaços.

  2. Se há alguma manipulação de string que possa estar causando o problema.

  3. Certifique-se de que o dicionário listaBanda está sendo preenchido corretamente e que as chaves realmente correspondem aos nomes das bandas, incluindo espaços.

Um exemplo de verificação poderia ser adicionar um Console.WriteLine para exibir o valor de consultaBanda logo após lê-lo, para garantir que a entrada está sendo capturada corretamente:

string consultaBanda = Console.ReadLine()!;
Console.WriteLine($"Nome da banda digitado: '{consultaBanda}'");

Isso ajudará a confirmar se o problema é na captura da entrada ou em algum outro lugar no código.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software