1
resposta

[Dúvida] [Dúvida] Fiz desta maneira:

Boa tarde, pessoal! Tudo bem? Ao invés de usar o List<int>  notasDasBandas = bandasRegistradas[nomeDaBanda]. 
Fiz assim, ó.

mas antes, gostaria de abrir um adendo para outra dúvida.
quando você digita uma banda e ela não contém valores, o código quebra.  como proceder?


void ExibirMedia()
    {
        Console.Clear();
        ExibirTituloDaOpcao("Exibir Média da Banda");
        Console.Write("Digite o nome da banda que gostaria de exibir a média: ");
        string nomeDaBanda = Console.ReadLine()!;
        if (bandasRegistradas.ContainsKey(nomeDaBanda))
        {
            var banda = bandasRegistradas[nomeDaBanda].Average();
            Console.WriteLine($"\nA média da {nomeDaBanda}, é: {banda} ");
            Console.WriteLine("Digite qualquer tecla para voltar ao menu iniciar");
            Console.ReadKey();
            Console.Clear();
            ExibirOpcoesDoMenu();
        }
        else
        {
            Console.WriteLine($"A banda {nomeDaBanda} não existe");
            Console.WriteLine("Digite qualquer tecla para voltar ao menu principal");
            Console.ReadKey();
            Console.Clear();
            ExibirOpcoesDoMenu();
        }
    }
1 resposta

Olá, Ronald!

Pela descrição na postagem, você está com dificuldades em lidar com o caso em que uma banda não possui valores registrados, e o código acaba quebrando.

Uma forma de lidar com essa situação é verificar se a banda existe no dicionário bandasRegistradas antes de tentar calcular a média. Você já está fazendo essa verificação com bandasRegistradas.ContainsKey(nomeDaBanda), o que é ótimo! Agora, vamos adicionar um novo trecho de código dentro do if para tratar o caso em que a banda não possui valores registrados.

if (bandasRegistradas.ContainsKey(nomeDaBanda))
{
    var notasDaBanda = bandasRegistradas[nomeDaBanda];
    if (notasDaBanda.Count > 0)
    {
        var banda = notasDaBanda.Average();
        Console.WriteLine($"\nA média da {nomeDaBanda} é: {banda} ");
    }
    else
    {
        Console.WriteLine($"A banda {nomeDaBanda} não possui valores registrados.");
    }
    Console.WriteLine("Digite qualquer tecla para voltar ao menu iniciar");
    Console.ReadKey();
    Console.Clear();
    ExibirOpcoesDoMenu();
}
else
{
    Console.WriteLine($"A banda {nomeDaBanda} não existe");
    Console.WriteLine("Digite qualquer tecla para voltar ao menu principal");
    Console.ReadKey();
    Console.Clear();
    ExibirOpcoesDoMenu();
}

No trecho de código acima, adicionamos um novo if logo após pegar a lista de notas da banda (var notasDaBanda = bandasRegistradas[nomeDaBanda]). Dentro desse novo if, verificamos se a lista notasDaBanda possui algum elemento usando notasDaBanda.Count > 0. Se a lista estiver vazia, exibimos a mensagem informando que a banda não possui valores registrados. Caso contrário, continuamos com o cálculo da média e exibição normalmente.

Bons estudos!