Where y Select en C#
Filtrar y transformar secuencias sin escribir un bucle.
var numbers = Enumerable.Range(1, 10);
var evens = numbers.Where(n => n % 2 == 0);
var squares = numbers.Select(n => n * n);
Console.WriteLine(string.Join(",", evens));
Console.WriteLine(string.Join(",", squares.Take(4)));
// encadenada: la consulta corre solo cuando algo pide resultados
var firstBig = numbers.Select(n => n * n).First(sq => sq > 20);
Console.WriteLine(firstBig);
Cómo funciona
Whereconserva lo que el predicado acepta;Selectmapea cada elemento.- Las consultas son perezosas: nada corre hasta que
JoinoFirstpide resultados. First(sq => sq > 20)se detiene en la primera coincidencia, no recorre toda la lista.
Palabras clave y builtins usados aquí
stringvar
El intento, en números
- Líneas
- 11
- Caracteres a escribir
- 384
- Tokens
- 106
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 71 segundos.
Paso 1 de 3 en LINQ; paso 22 de 29 en Fundamentos del lenguaje.