1
resposta

Fiz o desafio de outra maneira

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:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá Sergio!

Parabéns por ter resolvido o desafio de outra maneira e por ter aprendido algo novo com o uso do método Zip! É sempre bom explorar diferentes abordagens para resolver um problema.

Pelo código que você compartilhou, parece que você conseguiu criar uma lista de músicas ordenadas por chave (Key) e tonalidade (Tonalidade). A utilização do Zip foi uma ótima escolha para combinar as duas listas em um único objeto.

No seu loop foreach, você está imprimindo a chave (Key) e a tonalidade (Tonalidade) de cada item da lista. No entanto, notei que você está tentando acessar a tonalidade pelo índice da chave (key.Tonalidade[key.Key]), o que pode não estar retornando o resultado esperado.

Para corrigir isso, você pode simplesmente acessar a propriedade Tonalidade diretamente, como key.Tonalidade. Dessa forma, você irá exibir corretamente a tonalidade correspondente a cada chave.

No mais, o resultado que você obteve parece estar correto, de acordo com a tabela de tradução que você mencionou.

Continue praticando e explorando diferentes maneiras de resolver problemas! Bons estudos!