Resolvendo esses exercícios usei alguns métodos do LINQ, entre eles Select, OrderBy, Where e Distinct. Explicando eles :
- Select: Projeta (transforma) cada elemento da coleção em outra forma.
- OrderBy: Ordena os elementos da coleção com base em uma chave.
- Where: Filtra os elementos da coleção com base em uma condição booleana (verdadeiro/falso).
- Distinct: Remove elementos duplicados da coleção.
1 - Exibir todos os gêneros musicais da lista
var generos = musicas.Select(m => m.Genero).Distinct();
Console.WriteLine("Genêros musicas encontrados: ");
foreach (var genero in generos)
{
Console.WriteLine(genero);
}
2 - Ordenar os artistas por nome
var ArtistasOrdenados = musicas.OrderBy(m => m.Artista).Distinct();
Console.WriteLine("Artistas ordenados em ordem alfabética: ");
foreach (var musica in ArtistasOrdenados)
{
Console.WriteLine(musica.Artista);
}
3 - Filtrar artistas por gênero musical
var ArtistasGenero = musicas.Where(m => m.Genero == "rock").Select(m => m.Artista);
foreach (var artista in ArtistasGenero)
{
Console.WriteLine(artista);
}
var quantidadeRock = ArtistasGenero.Count();
Console.WriteLine($"Quantidade de músicas de Rock: {quantidadeRock}");
4 - Filtrar as músicas de um artista
var ArtistasMusica = musicas.Where(m => m.Artista == "Taylor Swift").Select(m => m.Nome).Distinct();
foreach (var artista in ArtistasMusica)
{
Console.WriteLine(artista);
}
var quantidade = ArtistasMusica.Count();
Console.WriteLine($"Quantidade de músicas da Taylor Swift: {quantidade}");