Existe diferença de performance no LINQ se eu primeiro filtrar pra depois ordenar ex:
musicas.Select().Distinct().OrderBy()
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Existe diferença de performance no LINQ se eu primeiro filtrar pra depois ordenar ex:
musicas.Select().Distinct().OrderBy()
Olá, Ipojuca!
A ordem das operações no LINQ pode, sim, afetar a performance. No caso do seu exemplo, musicas.Select().Distinct().OrderBy(), a filtragem está sendo feita antes da ordenação, o que é uma boa prática. Isso porque, ao filtrar primeiro, você diminui a quantidade de dados que precisam ser ordenados, o que pode melhorar a performance.
No entanto, é importante notar que a diferença de performance pode não ser perceptível se o conjunto de dados for pequeno. A diferença se torna mais evidente quando estamos lidando com conjuntos de dados muito grandes.
Aqui está um exemplo prático para ilustrar isso:
// Filtrando antes de ordenar
var musicasFiltradasOrdenadas = musicas
.Where(musica => musica.Genero == "Rock")
.OrderBy(musica => musica.Artista)
.ToList();
// Ordenando antes de filtrar
var musicasOrdenadasFiltradas = musicas
.OrderBy(musica => musica.Artista)
.Where(musica => musica.Genero == "Rock")
.ToList();
No primeiro exemplo, o programa filtra as músicas que são do gênero Rock e, em seguida, ordena o resultado. No segundo exemplo, o programa ordena todas as músicas por artista e, em seguida, filtra as músicas que são do gênero Rock.
Se o conjunto de dados for grande e apenas uma pequena parte das músicas for do gênero Rock, o primeiro exemplo será mais eficiente porque ordenará menos dados.
Espero ter ajudado e bons estudos!