Temos alguns erros na tradução do código, então vai aqui a correção para quem não conseguiu: Em Musica.cs
//código omitido
[JsonPropertyName("year")]
public string? AnoString { get; set; }
public int Ano
{
get
{
return int.Parse(AnoString!);
}
}
Em LinqFilter.cs
public static void FiltrarMusicasPeloAno(List<Musica> musicas, int ano)
{
var musicasDoAno = musicas.Where(musica => musica.Ano == ano)
.OrderBy(musicas => musicas.Nome) // ordena as músicas pelo nome
.Select(musicas => musicas.Nome) // seleciona apenas o nome das músicas
.Distinct() // remove as duplicidades
.ToList(); // converte o resultado em uma lista
Console.WriteLine($"Músicas de {ano}");
foreach (var musica in musicasDoAno)
{
Console.WriteLine($"- {musica}");
}
}
No Program.cs
//código omitido
LinqFilter.FiltrarMusicasPeloAno(musicas, 2012);