var notas = new Dictionary<string, decimal>();
notas.Add("Ana", 8.75m);
notas.Add("Bruno", 6.90m);
notas.Add("Clara", 9.25m);
foreach (var item in notas)
{
Console.WriteLine($"Aluno {item.Key} - Nota: {item.Value}");
}
var notas = new Dictionary<string, decimal>();
notas.Add("Ana", 8.75m);
notas.Add("Bruno", 6.90m);
notas.Add("Clara", 9.25m);
foreach (var item in notas)
{
Console.WriteLine($"Aluno {item.Key} - Nota: {item.Value}");
}
Olá, Eduardo. Como vai?
Excelente código! Sua implementação do Dictionary<string, decimal> está perfeita. Você utilizou corretamente os tipos de dados mais adequados para o cenário, como o tipo decimal (marcado com o sufixo m), que é a melhor prática em C# para armazenar notas acadêmicas ou valores financeiros devido à sua precisão decimal rigorosa. A iteração com o laço foreach também foi estruturada muito bem.
Para enriquecer ainda mais o seu projeto e expandir seus conhecimentos sobre o comportamento dos dicionários, existem duas implementações e boas práticas bem importantes para o dia a dia:
Por padrão, os dicionários comuns no C# não garantem uma ordenação fixa dos elementos. Se em um projeto real você precisar exibir a lista de alunos em ordem alfabética ou classificada pela maior nota, você pode utilizar o LINQ (adicionando o using System.Linq; no topo do arquivo).
Veja como é simples ordenar a exibição sem alterar o dicionário original:
// Ordenando por nome (Chave) de forma crescente
foreach (var item in notas.OrderBy(x => x.Key))
{
Console.WriteLine($"Aluno: {item.Key} - Nota: {item.Value}");
}
// Ordenando da maior nota para a menor (Valor)
foreach (var item in notas.OrderByDescending(x => x.Value))
{
Console.WriteLine($"Aluno: {item.Key} - Nota: {item.Value}");
}
No C# moderno, podemos encurtar a declaração e a inserção dos dados usando uma sintaxe conhecida como Index Initializer. Ela deixa o código mais limpo e visualmente parecido com um JSON, além de evitar que o programa quebre se você colocar uma chave repetida sem querer durante a inicialização:
var notasModerna = new Dictionary<string, decimal>
{
["Ana"] = 8.75m,
["Bruno"] = 6.90m,
["Clara"] = 9.25m
};
Parabéns pela dedicação nos exercícios e por consolidar tão bem o uso de coleções em C#!
Espero que possa ter lhe ajudado!