Minha resolução ficou um pouco diferente, podendo filtrar de qualquer tipo e não só o C#
LinqFilter.cs
public static void FiltrarMusicasPorTonalidade(List<Musica> musicas, string tonalidade) {
var musicasPorTonalidade = musicas
.Where(musica => musica.Tonalidade.Equals(tonalidade))
.Select(musica => musica.Nome)
.Distinct()
.ToList();
Console.WriteLine($"MÚSICAS DE TONALIDADE {tonalidade}");
foreach (var musica in musicasPorTonalidade)
{
Console.WriteLine($"- {musica}");
}
}
Program.cs
LinqFilter.FiltrarMusicasPorTonalidade(musicas, "C#");
Musica.cs
[JsonPropertyName("key")]
public int Key { get; set; }
public string Tonalidade {
get
{
return tonalidades[Key];
}
}