1
resposta

[Projeto] Listando os alunos

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}");
}
1 resposta

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:


1. Ordenando a listagem (LINQ)

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}");
}

2. Alternativa moderna de inicialização

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!