resolvi esse desafio de outra maneira, pra ser sincero eu tinha conseguido colocar só a lista de keys em ordem, nao consegui pegar as tonalidades, ai depois vi o video e vi que eu tinha pensado em fazer de outra maneira, então depois que vi que tinha que criar um array com essas tonalidades resolvi fazer da maneira que eu tinha pensado, então quebrei a cabeça aqui um pouco e ficou assim, o bom foi que eu aprendi que da pra fazer um foreach com dois arrays de itens, com esse tal de Zip rs
public static void ExibirListaDeMusicasOrdenadas(List<Musica> musicas)
{
var keyFiltrada = musicas.OrderBy(m => m.Key).Select(m => m.Key).Distinct().ToList();
var tonalidadeFiltrada = musicas.Select(m => m.Tonalidade).Distinct();
var keysAndTonalidade = keyFiltrada.Zip(tonalidadeFiltrada, (n, w) => new { Key = n, Tonalidade = w });
Console.WriteLine($"Key/Tonalidade");
foreach (var key in keysAndTonalidade)
{
Console.WriteLine($"{key.Key} => {key.Tonalidade[key.Key]}");
}
Console.WriteLine();
}
e o resultado foi esse: