typestar

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.

Empieza este tour

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

  • JoinEl inner join: emparejar filas de dos secuencias según una clave.
  • GroupJoinEl primo del left join: cada fila izquierda con su grupo de coincidencias.
  • ToLookupUn índice uno-a-muchos congelado sobre una secuencia.

Sintaxis de consulta

Materialización y conjuntos

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.

Los otros tours de C#