Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Não apresenta artistas ordenados

Olá, se alguém puder me ajudar, ficarei grato. Acho que meu código está correto e mesmo assim não apresenta a lista de artistas como mostrado na aula e nem erros. Simplismente é como se não tivessem os dados, mas quando 'descomento' a lista de generos, aparece normal. Segue os códigos e a print da saída do console.

Program.cs

using ScreenSound4.Modelos;
using ScreenSound4.Filtros;
using System.Text.Json;

using (HttpClient client = new HttpClient())
{
    try
    {
        string resposta = await client.GetStringAsync("https://guilhermeonrails.github.io/api-csharp-songs/songs.json");
        var musicas = JsonSerializer.Deserialize<List<Musica>>(resposta)!;
        //LinqFilter.FiltrarTodosOsGeneros(musicas);
        LinqOrder.ExibirListaDeArtistasOrdenados(musicas);
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Temos um problemas: {ex.Message}");
    }
}

LinqOrder.cs

using ScreenSound4.Modelos;

namespace ScreenSound4.Filtros;

internal class LinqOrder
{
    public static void ExibirListaDeArtistasOrdenados(List<Musica> musicas)
    {
        var artistasOrdenados = musicas.OrderBy(musica => musica.Artista).Select(musica => musica.Artista).Distinct().ToList();
        Console.WriteLine("Lista de artistas ordenados");
        foreach (var artista in artistasOrdenados)
        {
            Console.WriteLine($"- {artista}");
        }
    }
}

Saida do console sem o resultado e sem erros :(

2 respostas
solução!

Gente descobri o problema, o nome da propriedade na classe Musica estava incorreto.

Class Music

   [JsonPropertyName("artists")]
    public string? Artista { get; set; }

mas no Json estava:

"artist": "The Chainsmokers",

tireo o "s" safado e resolveu. Obrigado.

Obrigado por compartilhar a solução