Consulta de lenguaje integrado


Language Integrated Query ( LINQ , pronunciado "enlace") es un componente de Microsoft .NET Framework que agrega capacidades de consulta de datos nativos a los lenguajes .NET , lanzado originalmente como una parte importante de .NET Framework 3.5 en 2007.

LINQ amplía el lenguaje mediante la adición de expresiones de consulta , que son similares a las instrucciones SQL , y se pueden usar para extraer y procesar datos de manera conveniente desde matrices , clases enumerables , documentos XML , bases de datos relacionales y fuentes de datos de terceros. Otros usos, que utilizan expresiones de consulta como un marco general para componer cálculos arbitrarios de manera legible, incluyen la construcción de controladores de eventos [1] o analizadores monádicos . [2] También define un conjunto de nombres de métodos (llamados operadores de consulta estándar u operadores de secuencia estándar), junto con las reglas de traducción utilizadas por el compilador para traducir expresiones de sintaxis de consulta en expresiones con estilo fluido (llamado sintaxis de método por Microsoft) con estos nombres de método, expresiones lambda y tipos anónimos . Muchos de los conceptos que introdujo LINQ se probaron originalmente en el proyecto de investigación Cω de Microsoft.

Existen puertos de LINQ para PHP ( PHPLinq ), JavaScript ( linq.js ), TypeScript ( linq.ts ) y ActionScript ( ActionLinq ), aunque ninguno es estrictamente equivalente a LINQ en los lenguajes inspirados en .NET C#, F# y VB.NET (donde es parte del idioma, no una biblioteca externa, y donde a menudo aborda una gama más amplia de necesidades). [ cita requerida ]

En lo que sigue, las descripciones de los operadores se basan en la aplicación de trabajar con colecciones. Muchos de los operadores toman otras funciones como argumentos. Estas funciones pueden suministrarse en forma de un método con nombre o una función anónima.

El conjunto de operadores de consulta definidos por LINQ se expone al usuario como la API del operador de consulta estándar (SQO) . Los operadores de consulta admitidos por la API son: [3]

El operador Seleccionar realiza una proyección sobre la colección para seleccionar aspectos interesantes de los elementos. El usuario proporciona una función arbitraria, en forma de expresión nombrada o lambda , que proyecta los miembros de datos. La función se pasa al operador como delegado .