1
resposta

[Projeto] Faça como eu fiz: Refatorando uma função

Aqui nesse projeto, eu quis mostrar o nome da personagem e as temporadas que ela participou.

Program.cs

using System.Text.Json;
using TesteConsumindoAPI.Personagem;

using (HttpClient client = new HttpClient())
{
    try
    {
        string resposta = await client.GetStringAsync("https://www.anapioficeandfire.com/api/characters/16");
        var personagem = JsonSerializer.Deserialize<Personagem>(resposta);
        personagem.Mostrar();
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Temos um problema: {ex.Message}");
    }

}

Personagem.cs

using System.Text.Json.Serialization;

namespace TesteConsumindoAPI.Personagem;
internal class Personagem
{
    [JsonPropertyName("name")]
    public string Nome { get; set; }

    [JsonPropertyName("tvSeries")]
    public List<string>? Temporadas { get; set; }

    public void Mostrar()
    {
        Console.WriteLine($"Nome da personagem: {Nome}");
        Console.WriteLine("Temporadas que participou:");

        if (Temporadas != null && Temporadas.Any())
        {
            foreach (var temporada in Temporadas)
            {
                Console.WriteLine($"- {temporada}");
            }
        }
        else
        {
            Console.WriteLine("Nenhuma temporada registrada.");
        }
    }
}
1 resposta

Oi, Matheus! Como vai?

Gostei bastante da forma como você separou a responsabilidade da classe Personagem, deixando o método Mostrar bem organizado e tratando o caso de lista vazia com Any(). Isso deixa o código mais legível e evita erros comuns com coleções nulas.

Uma dica interessante para o futuro é usar o método string.Join para exibir listas de forma mais direta, evitando o foreach quando fizer sentido:


var temporadas = new List<string> { "Season 1", "Season 2" };
Console.WriteLine(string.Join(", ", temporadas));

Esse código junta todos os itens da lista em uma única string separada por vírgula, deixando a saída mais compacta.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!