typestar

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

  1. Where conserva lo que el predicado acepta; Select mapea cada elemento.
  2. Las consultas son perezosas: nada corre hasta que Join o First pide resultados.
  3. First(sq => sq > 20) se detiene en la primera coincidencia, no recorre toda la lista.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 3 en LINQ; paso 22 de 29 en Fundamentos del lenguaje.

← Anterior Siguiente →