Segue abaixo a minha versão de código para a atividade:
using System.ComponentModel.DataAnnotations;
using System.Globalization;
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 ExibirCarros() {
Console.WriteLine("Carros disponíveis para consulta: ");
foreach (string carro in vendasCarros.Keys) {
Console.WriteLine(carro);
}
VoltarAoMenu();
}
void CalcularMedia() {
Console.Write("Digite o nome do carro: ");
string nomeCarro = Console.ReadLine()!;
if (vendasCarros.ContainsKey(nomeCarro)) {
double mediaVendas = vendasCarros[nomeCarro].Average();
Console.WriteLine($"Média de vendas: {mediaVendas}");
} else {
Console.WriteLine("O veículo não foi encontrado!");
}
VoltarAoMenu();
}
void VerMediaDeTodos() {
Console.WriteLine("Exibindo média de todos os carros da lista:");
foreach (string carro in vendasCarros.Keys) {
double mediaVendas = vendasCarros[carro].Average();
Console.WriteLine($"Veículo: {carro} \t Média: {mediaVendas}");
}
VoltarAoMenu();
}
void VoltarAoMenu() {
Console.WriteLine("Pressione qualquer tecla para voltar");
Console.ReadKey();
ExibirMenu();
}
void ExibirMenu() {
Console.Clear();
Console.WriteLine(@"
Digite [1] para exibir os veículos disponíveis para consulta
Digite [2] para buscar a média de um veículo específico
Digite [3] para exibir a média de todos os veículos disponíveis para consulta
Digite [0] para sair.
");
int opcao = int.Parse(Console.ReadLine()!);
switch(opcao) {
case 1: ExibirCarros(); break;
case 2: CalcularMedia(); break;
case 3: VerMediaDeTodos(); break;
case 0: Console.WriteLine("Até logo!"); break;
default: Console.WriteLine("Opção inválida!");
Thread.Sleep(5000);
ExibirMenu();
break;
}
}
ExibirMenu();