1
resposta

[Dúvida] Outra maneira de filtrar as músicas de um artista

Antes da aula "Exibindo músicas por artistas", eu decidi tentar fazer o desafio por conta própria. Não utilizei o LINQ como no vídeo, porém obtive o mesmo resultado. Gostaria de saber se como fiz é uma maneira menos eficaz, mais eficaz, se tem diferença da utilização do código mostrado em vídeo:

Meu código:

    musica.FindAll(x => x.Artista == "MGMT").ForEach(x => Console.WriteLine($"Música: {x.Nome}")); //Desconsidere a verificação por uma string fixa, no caso "MGMT"

Código do vídeo:

     musica.Where(musica => musica.Artista!.Equals(nomeDoArtista)).ToList(); //Depois existe o foreach para imprimir
1 resposta

Oi Mário, tudo bem?

Que legal ver você se esforçando para descobrir novas maneiras de resolver problemas. Isso é muito bom pra aprender!

Sobre sua pergunta, as duas maneiras que você falou para separar músicas de um artista são parecidas na eficiência. Ambas são boas para selecionar os dados e são fáceis de entender.

A diferença principal entre os códigos é o jeito que eles usam para selecionar as músicas. Seu código usa a função FindAll, que pega todos os itens que batem com o que você quer. Já o código do vídeo usa a função Where, que é parte do LINQ e mostra os itens que combinam com o que você quer.

Falando em rapidez, as duas funções são quase iguais, a menos que você tenha muitos dados.

Mas uma coisa legal da função Where é que ela espera para selecionar os dados até você começar a usar eles. Isso pode ser bom se você não precisa dos dados todos de uma vez.

No fim das contas, a escolha entre as duas funções depende do que você precisa fazer. Cada uma tem seus pontos bons e ruins.

Espero que tenha ficado claro!

Um abraço e bons estudos.