tipos: las expresiones de consulta. Sintaxis basada en nuevas palabras reservadas contextuales. Semntica enchufable: los lenguajes no definen la semntica de las nuevas palabras reservadas, sino nicamente un conjunto de reglas para reescribir esas expresiones como cascadas de llamadas a mtodos.
var delMadrid = from f in DatosFutbol.Futbolistas where f.CodigoClub == RMA" select new { f.Nombre, f.Edad }; var delMadrid = DatosFutbol.Futbolistas .Where(f => f.CodigoClub == RMA") .Select(f => new { f.Nombre, f.Edad }); Fuentes de consultas Los datos provienen de cierta fuente, que implementa IEnumerable<T>.
Operadores de consulta estndar No todos los operadores tienen un reflejo en la sintaxis de los lenguajes. El patrn LINQ.
Restriccin Where Proyeccin Select, SelectMany Ordenacin OrderBy, ThenBy Agrupacin GroupBy Encuentros Join, GroupJoin Cuantificadores Any, All Particin Take, Skip, TakeWhile, SkipWhile Conjuntuales Distinct, Union, Intersect, Except Un elemento First, Last, Single, ElementAt Agregados Count, Sum, Min, Max, Average Conversin ToArray, ToList, ToDictionary Conversin de elementos OfType<T>, Cast<T> Composicionales, jerrquicas Anidamiento arbitrario. Posibilidad de aplicar operadores adicionales. Declarativas y no imperativas Diga qu usted desea obtener, no cmo. El cmo va por el proveedor. Ejecucin diferida Las consultas se ejecutan solo a medida que sus resultados se solicitan.
Basados en IEnumerable<T> Basados en IQueryable<T> Tecnologa Ensamblado Espacio de nombres LINQ to Objects System.Core.dll System.Linq LINQ to XML System.Xml.Linq.dll System.Xml.Linq LINQ to DataSet System.Data.DataSetExtensions.dll System.Data LINQ to SQL System.Data.Linq.dll System.Data.Linq LINQ to Entities System.Data.Entity.dll System.Data.Objects y otros Silverlight 2.0 .NET 3.5 CF .NET 3.5 Objetos <libro> <titulo/> <autor/> <precio/> </libro> XML Proveedores LINQ C# 3.0 VB 9.0 Otros BB.DD. LINQ to Objects LINQ to SQL LINQ to XML LINQ to Entities LINQ to DataSets Basados en IEnumerable<T> Basados en IQueryable<T> (el suyo) (el suyo) Basados en IEnumerable<T> Basados en IQueryable<T> Basados en IEnumerable<T> Basados en IQueryable<T> Interfaz IEnumerable<T> IQueryable<T> Ejecucin Local, en memoria Usualmente remota Implementacin Iteradores Anlisis de rboles de expresiones Proveedores LINQ to Objects LINQ to XML LINQ to DataSet LINQ to SQL LINQ to Entities Mis ejemplos LINQ to Pipes LoggingLINQ LINQ to TFS Habilite sus API existentes para LINQ Especficamente para consultas en memoria. Cree mtodos extensores que devuelvan un objeto IEnumerable<T>. Desarrolle su propio proveedor de consultas Implemente IQueryable<T>. Analice rboles de expresiones y traduzca nodos a cdigo o a un lenguaje de consultas diferente.
LINQ es un mecanismo uniforme y extensible para consultar fuentes de datos de diferentes tipos LINQ cambiar la forma en que escribimos cdigo. Ms declarativo Muchos menos bucles a la vista. Cdigo ms fcil de leer y mantener.