1
resposta

[Dúvida] Resolução do calculo de média das bandas.

Fiz o meu dessa forma, queria que aparecesse as notas, não apenas a média direito.
Gostaria de saber sobre o var no foreach, poderiam me explicar melhor e se sempre deve ser utilizado?

void MediaDasBandas()
{
    Console.Clear();
    ExibirTituloDaOpcao("Média de avaliações da banda");
    Console.Write("Digite o nome da banda que deseja verificar a média de notas das avaliações: ");
    string nomeDaBanda = Console.ReadLine()!;
    if (bandasRegistradas.ContainsKey(nomeDaBanda))
    {
        List<int> notas = bandasRegistradas[nomeDaBanda];
        // de uma maneira simples poderia ser feito assim:
        //Console.WriteLine($"A média da banda é: {notas.Average()}"); ----> Que ai no caso estaria chamando o metodo.
        Console.WriteLine($"Notas registradas para a banda {nomeDaBanda}: ");
        foreach(var n in notas)
        {
            Console.WriteLine(n);
        }
        double media = notas.Average();
        Console.WriteLine($"\nA média da banda {nomeDaBanda} é {Math.Round(media,2)}. ");
    }
    else
    {
        Console.WriteLine($"A banda {nomeDaBanda} não foi localizada.");
    }
    Console.Write("Digite qualquer tecla para voltar ao menu inicial.");
    Console.ReadKey();
    Console.Clear();
    ExibirOpcoesDoMenu();
}

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Oi, Tauane. Tudo bem?

O que o código faz?
A função MediaDasBandas():

  • Pede ao usuário o nome de uma banda.
  • Verifica se ela existe no dicionário bandasRegistradas.
  • Caso exista, recupera a lista de notas (List<int>) associadas a essa banda.
  • Exibe todas as notas.
  • Calcula a média com o método Average().
  • Mostra a média arredondada com Math.Round(media, 2).

Seu código tá correto e bem estruturado: ele cumpre o objetivo de exibir as notas e a média de forma clara.

Sobre o var no foreach:

O trecho:

foreach(var n in notas)
{
    Console.WriteLine(n);
}

é equivalente a:

foreach(int n in notas)
{
    Console.WriteLine(n);
}

O var é apenas uma forma de o compilador inferir o tipo automaticamente.
Ou seja, ele entende que n é um int, porque notas é uma List<int>.

Você não é obrigada a usar var. Pode escrever o tipo explicitamente se preferir.
Mas o var é muito usado porque:

  • Deixa o código mais limpo;
  • Evita repetição desnecessária;
  • É útil quando o tipo é longo ou complexo (por exemplo, Dictionary<string, List<int>>).

O mais importante é usar com clareza. Se o tipo for óbvio (como no seu caso), var é perfeitamente aceitável. Se o tipo não estiver claro, prefira declarar explicitamente.

Continue firme nos estudos.

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