1
resposta

Desafio: meu método para a opção 4 do Screen Sound

void ExibirMedia()
{
Console.Clear();
ExibirTituloDaOpcao("Média de notas das bandas");
Console.Write("Informe o nome da banda desejada: ");
string banda = Console.ReadLine()!;

if (bandasRegistradas.TryGetValue(banda, out List<int> notas))
{
    if (notas.Count != 0)
    {
        double media = notas.Average();
        Console.WriteLine($"\nA média da {banda} é: {media.ToString("F2", CultureInfo.InvariantCulture)}");

    } else
    {
        Console.WriteLine("A banda desejada ainda não foi avaliada!");
        
    }

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

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

}

1 resposta

Oi, José! Como vai?

Gostei bastante da forma como você utilizou o TryGetValue para evitar erros e também do cuidado ao verificar se a lista de notas está vazia antes de calcular a média. Isso mostra uma boa atenção com possíveis cenários no fluxo do programa, deixando a aplicação mais robusta.

Uma dica interessante para o futuro é utilizar o método string.ToLower() para evitar problemas com diferença entre letras maiúsculas e minúsculas na busca das bandas. Veja este exemplo:


string banda = Console.ReadLine().ToLower();
if (bandasRegistradas.TryGetValue(banda, out List notas))
{
    Console.WriteLine("Banda encontrada");
}

Esse código converte o nome digitado para minúsculo, evitando erros caso o usuário digite com letras diferentes das cadastradas.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!