1
resposta

[Projeto] Resolução de Exercício proposto no Módulo, caso encontre uma redundância pode comentar!

/*Para manipular elementos na lista em C#, é necessário acessar os elementos usando índices ou chaves,
 * por exemplo. É possível adicionar elementos usando o método Add(), remover elementos usando o método
 * Remove() ou alterar elementos diretamente através do seu índice ou chave. 
 * Confira abaixo:
 * 
 * Dictionary<string, List<int>> vendasCarros = new Dictionary<string, List<int>> {
    { "Bugatti Veyron", new List<int> { 10, 15, 12, 8, 5 } },
    { "Koenigsegg Agera RS", new List<int> { 2, 3, 5, 6, 7 } },
    { "Lamborghini Aventador", new List<int> { 20, 18, 22, 24, 16 } },
    { "Pagani Huayra", new List<int> { 4, 5, 6, 5, 4 } },
    { "Ferrari LaFerrari", new List<int> { 7, 6, 5, 8, 10 } }
   };
 *
 * Com base na lista de super carros fornecida acima, onde a chave é o nome do carro e os valores são 
 * quantas vezes esse carro foi vendido por ano, calcule a média de uma chave específica.
 */

//Programa precisa mostrar os nomes dos carros no banco de dados
//Usuário entra com o nome do veiculo desejado
// se veículo n tiver no sistema ele pede novamente o nome do veículo
//veiculo no sistema é calculado a media dos valores do carro escolhido
//



Dictionary<string, List<int>> vendasCarros = new Dictionary<string, List<int>> {
    { "Bugatti Veyron", new List<int> { 10, 15, 12, 8, 5 } },
    { "Koenigsegg Agera RS", new List<int> { 2, 3, 5, 6, 7 } },
    { "Lamborghini Aventador", new List<int> { 20, 18, 22, 24, 16 } },
    { "Pagani Huayra", new List<int> { 4, 5, 6, 5, 4 } },
    { "Ferrari LaFerrari", new List<int> { 7, 6, 5, 8, 10 } }
};

void ListarCarros()
{
    foreach (var car in vendasCarros.Keys)
    {
        Console.WriteLine(car);
    }
}


Console.WriteLine("*** Lista de Carros cadastrados no Sistema ***\n");
ListarCarros();

while (true)
{
    Console.Write("\nQual desses carros você deseja saber a média? ");
    string carroEscolhido = Console.ReadLine()!;
    if (vendasCarros.ContainsKey(carroEscolhido))
    {
        // calcula média e armazena 
        List<int> quantidadeVendas = vendasCarros[carroEscolhido];
        double mediaVendas = quantidadeVendas.Average();
        Console.WriteLine($"\nO {carroEscolhido} teve uma média de vendas de {mediaVendas}\n-=-=-=-=-=-=-=--=-=-=-=");
        Console.Write("Para sair digite \"sair\", senão informe outro veículo...");

    }
    else if (carroEscolhido == "sair")
    {
        //sair
        break;

    }else
    {
        //info errada 
        Console.WriteLine(">>>Nome escolhido não consta no nosso banco de dados! Tente novamente ou saia digitando \"sair\"! ");
    }
}
1 resposta

Olá, Gabriel! Tudo bem?

Pelo que entendi, você gostaria de uma revisão no seu código para verificar se há alguma redundância, certo?

Seu código está bem estruturado e faz o que é pedido no exercício. Você fez um bom trabalho ao usar o método ContainsKey() para verificar se o carro escolhido pelo usuário está presente no dicionário vendasCarros. Além disso, a utilização do método Average() para calcular a média das vendas foi uma boa escolha.

No entanto, notei que você poderia melhorar um pouco a legibilidade do seu código. Veja bem, a função ListarCarros() poderia ter um nome mais descritivo, como ExibirNomesDosCarros(), por exemplo. Isso torna mais claro o que a função faz.

Outra sugestão seria extrair o cálculo da média para uma função separada, algo como:

double CalcularMediaVendas(string carroEscolhido)
{
    List<int> quantidadeVendas = vendasCarros[carroEscolhido];
    return quantidadeVendas.Average();
}

E então, no seu bloco principal, você poderia chamá-la assim:

double mediaVendas = CalcularMediaVendas(carroEscolhido);

Essas são apenas sugestões para melhorar a legibilidade e a organização do seu código. No entanto, seu código já está correto e faz o que é esperado. Parabéns pelo trabalho!

Espero ter ajudado e bons estudos!