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

[Bug] Quando tento acessar detalhes da banda está dando erro!!

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

using ScreenSound.Modelos;
namespace ScreenSound.Menus;

//ClasseDescendente : ClasseAncestral
internal class MenuExibirDetalhes : Menu
{

    public override void Executar(Dictionary<string, Banda> bandasRegistradas)
    {
        //Isso quer dizer que irá executar o que está no método do menu e também que escrevemos aqui.
        base.Executar(bandasRegistradas);
        ExibirTituloDaOpcao("Exibir detalhes da banda====");
        Console.Write("Digite o nome da banda que deseja conhecer melhor: ");
        string nomeDaBanda = Console.ReadLine()!;
        if(bandasRegistradas.ContainsKey(nomeDaBanda))
        {
            Banda banda = bandasRegistradas[nomeDaBanda];
            Console.WriteLine($"\nA média da banda {nomeDaBanda} é {banda.Media}.");
            foreach(Album album in banda.Albuns)
            {
                Console.WriteLine($"{album.Nome} -> {album.Media}");
            }
            Console.WriteLine("\nDigite uma tecla para votar ao menu principal");
            Console.ReadKey();
            Console.Clear();

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

    }
}

O erro acontece quando acessa o if. Não tenho ideia como resolver este erro e como faço para obter o resultado esperado que é a média da banda e do álbum.


Dando uma investigada mais a fundo.... Percebi uma coisa. Desconfio que o erro está nesta função: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Implementei este if, deu certo!!! Na propriedade Media da classe Banda.

    public double Media
    {
        get
        {
            if (notas.Count == 0) return 0;
            else return notas.Average(c => c.Nota);

        }
    }