Olá, Eduardo. Como vai?
Parabéns por concluir essa sequência de desafios! Você fechou o ciclo de persistência de dados de forma excelente, implementando a leitura e a iteração sobre uma lista de objetos desserializados de um arquivo JSON. Essa habilidade de transformar uma string bruta em uma coleção de objetos manipuláveis no C# é essencial para qualquer desenvolvedor que trabalhe com integração de sistemas e APIs.
O uso do foreach para percorrer a lista pessoas está perfeito e demonstra uma boa compreensão de como lidar com coleções após a leitura do disco.
Para elevar ainda mais a qualidade técnica do seu projeto, deixo algumas sugestões:
- Tratamento de Nulos: Como a desserialização pode retornar uma lista vazia ou nula (caso o arquivo esteja mal formatado), é uma boa prática usar o operador de interrogação ou verificar se a variável é nula antes de iniciar o
foreach. - LINQ para Filtros: Já que o curso aborda LINQ, você poderia aproveitar para ordenar a lista ou filtrar os dados antes de exibi-los.
- Organização Visual: Adicionar um separador visual entre os dados de cada pessoa ajuda muito na leitura do console.
Veja como o seu código poderia ficar com essas pequenas melhorias:
string fileName = "pessoas.json";
if (File.Exists(fileName))
{
string jsonString = File.ReadAllText(fileName);
// O tipo List<Pessoa>? indica que a lista pode vir nula
var pessoas = JsonSerializer.Deserialize<List<Pessoa>>(jsonString);
if (pessoas != null && pessoas.Any())
{
Console.WriteLine($"--- Exibindo {pessoas.Count} pessoas encontradas ---\n");
foreach (var pessoa in pessoas)
{
Console.WriteLine($"Nome: {pessoa.Nome}");
Console.WriteLine($"Idade: {pessoa.Idade}");
Console.WriteLine($"E-mail: {pessoa.Email}");
Console.WriteLine(new string('-', 30)); // Linha separadora
}
}
else
{
Console.WriteLine("O arquivo está vazio ou em formato inválido.");
}
}
else
{
Console.WriteLine($"O arquivo {fileName} não existe.");
}
- O método Any() do LINQ é uma forma elegante de verificar se a lista contém elementos antes de entrar no laço de repetição.
- O uso de
new string('-', 30) é um truque simples para criar divisores visuais sem precisar digitar vários hífens manualmente.
Você demonstrou um ótimo domínio sobre a manipulação de arquivos e JSON nesta jornada. Continue praticando!
Espero que possa ter lhe ajudado!