LINQ a fondo
17 pasos en 6 series de C#.
LINQ es la razón por la que quienes programan en C# dejan de escribir bucles. Llegó en 2007 como una apuesta: las consultas pertenecen al lenguaje, no van dentro de cadenas de texto. La apuesta pagó dos veces: una en los encadenamientos de métodos que se leen de izquierda a derecha, y otra en una sintaxis de consulta que se lee como el SQL del que la tomó prestada. Ambas compilan a las mismas llamadas y ambas son perezosas — nada corre hasta que algo pide resultados.
El tour de fundamentos probó Where y Select. Este cubre el resto del repertorio de trabajo: aplanar con SelectMany, cortar con TakeWhile y Chunk, las tres formas de join, las palabras clave de consulta let y group into, y los materializadores que convierten una consulta en el diccionario que en realidad querías. El bis se abre paso a punta de joins, agrupaciones y ordenamientos por dos pequeños programas de reportes.
Dar forma
- Select con índiceLa sobrecarga que numera una lista sin variable contadora.
- SelectManyAplanar una secuencia de secuencias en un solo stream.
- ZipRecorrer secuencias paralelas al mismo paso.
Cortes
- TakeWhile y SkipWhileCortar una secuencia en el primer elemento que rompe la regla.
- ChunkAgrupar una secuencia en arreglos de a lo más n.
- DistinctByDeduplicar por una clave conservando los elementos completos.
Joins y lookups
Sintaxis de consulta
- Sintaxis de consultaEl mismo LINQ, con la forma del SQL del que la tomó prestada.
- Cláusulas letNombrar un valor intermedio una vez y usarlo tres veces.
- group ... intoAgrupar dentro de una consulta y seguir consultando sobre los grupos.
Materialización y conjuntos
- ToDictionaryMaterializar una consulta en la colección que de verdad vas a usar.
- Operaciones de conjuntosIntersect, Except y Union tratan las secuencias como conjuntos.
- Valores por defecto y generadoresSecuencias vacías sin las excepciones.
Bis
- sales_report.csUnir, agrupar y clasificar en una consulta: una tabla de ventas desde pedidos crudos.
- anagram_finder.csAgrupa las palabras por sus letras ordenadas y los anagramas se encuentran solos.