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

[Dúvida] Como eu poderia filtrar mais de uma opção?

E seu eu quisesse mostrar mostrar mais de uma coisa? por exemplo, mostrar o nome da musica e artista, eu teria que usar novamente o .Select()?

Meu codigo ficou um pouco diferente do apresentado no projeto, pois eu dei a possibilidade de achar outros tons musicais.

    public static void FiltrarMusicaPorTonalidade(List<Musica> musicas, string representaTonalidade)
    {
        var tonalidade = musicas.Where(tom => tom.Tonalidade.Equals(representaTonalidade)).Select(nome => nome.Nome).Distinct().ToList();

        Console.WriteLine($"Musicas com a tonalidade {representaTonalidade}:");

        foreach (var msc in tonalidade)
        {
            Console.WriteLine($"- {msc}");
        }
    }
2 respostas
solução!

Sim, você pode usar o método Select() novamente para mostrar mais de uma coisa. Por exemplo, o seguinte código mostraria o nome da música e o artista:

public static void FiltrarMusicaPorTonalidade(List musicas, string representaTonalidade) { var tonalidade = musicas.Where(tom => tom.Tonalidade.Equals(representaTonalidade)).Select(nome => new { nome = nome.Nome, artista = nome.Artista }).Distinct().ToList();

Console.WriteLine("Musicas com a tonalidade {representaTonalidade}:"); foreach (var msc in tonalidade) { Console.WriteLine("- {msc.nome} - {msc.artista}"); } }

O método Select() é usado para aplicar uma função a cada elemento de uma coleção e retornar uma nova coleção com os resultados. Neste caso, a função está retornando um objeto que contém o nome da música e o artista. O método Distinct() é usado para remover duplicatas da coleção. O método ToList() é usado para converter a coleção em uma lista.

Espero que isso ajude!

Muito obrigado Ygor, ajudou bastante e achei bem interessante o metodo!