LINQ para dummies

Language Integrated Query (LINQ) utiliza una increíble variedad de operadores. Un operador

es una palabra especial que le dice LINQ qué tipo de consulta a realizar, tales como comprobar si dos valores son iguales. Los operadores pueden llegar a cientos, pero en la mayoría de los casos usted va a realizar la mayoría de las tareas usando sólo unos pocos operadores estándar. A continuación se muestra una lista de los operadores esenciales LINQ.

OperadorDescripción
deDefine el objeto temporal que se utiliza para realizar una consulta. Piense ofthis operador como la definición del objeto elemento individual de whichyou derivan todos los demás datos de la consulta. Por ejemplo, choosewhat aparecerán los datos en la salida y cómo esos datos se orderedbased en la variable temporal. los deoperador es el único que debe aparecer en cada youcreate consulta.
enDefine la fuente de datos utilizada para obtener los datos. Un dato sourcecan ser cualquier objeto con el apoyo de un proveedor de datos. Los providercreates una conexión entre la fuente de datos y el ejemplo LINQ query.For, una fuente de datos puede incluir un objeto, como un cuadro de lista, un archivo XML, una tabla de SQL Server, Active Directory, un servicio web, o casi cualquier otra cosa que quieras a utilizar para RecogidaDeInformación. Es incluso posible trabajar directamente con los archivos de la unidad yourhard utilizando una consulta LINQ. Una consulta puede contener tantas matchingpairs de de y en los operadores que se necesita para describir completamente theData fuentes utilizadas en la consulta.
seleccionarEscoge la información de salida de la consulta. El simplestoutput es el mismo objeto se define mediante el de operador. Sin embargo, un operador de selección puede incluir valores calculados, conjuntos de datos, o propiedades de los objetos individuales. El limitingfactor en la mayoría de los casos es la funcionalidad que ofrece el LINQprovider. Los cuatro de los proveedores predeterminados incluyen el completerange de seleccionar comportamientos operador. Aquery contiene sólo una seleccionar operatorand este operador debe aparecer como el último operador en thequery.
dóndeDescribe las condiciones en las que un elemento aparece como partof la salida. los dónde operador alwaysrequires un argumento booleano para definir las condiciones de salida. Youcan incluir tantos dónde operadores ASNEEDED para describir completamente los criterios de salida. LINQ interpreta eldónde operadores en el orden en whichthey ​​aparecen en la consulta, por lo que el orden es importante. Cuando anticipa una obra querydoesn't como, intente cambiar el orden de los operadores cuando para describir mejor los outputrequirements. Utilice el depurador para ayudar a localizar errores en el logicalflow de dónde operadores.
orderbyDefine el orden en que aparecen los elementos de salida. Lo más simple orderby operador se basa en theObject se define mediante el deoperador. Sin embargo, una orderby operatorcan aceptar cualquier declaración que define un orden lógico argumentas de entrada - normalmente numérica, alfabética, símbolo o binary.You puede usar tantos orderby operadores ASNEEDED para describir completamente el orden de salida de los datos. Como con eldónde operador, LINQ interpreta el operador orderby en el orden en que itappears en la consulta. En consecuencia, el orden de los operadores OrdenarPor es importante.
unirse y enCombina dos o más fuentes de datos para crear una vista compuesta Ofthe datos. Las fuentes de datos no necesitan depender de los mismos proveedores. Uso Youcan hasta unirse operadores asrequired para describir completamente todas las fuentes de datos utilizadas para aquery. los en operador define thecriterion utilizado para combinar dos fuentes de datos. Par de la unión y en operatorsto crear una fuente de datos completa.
dejarCrea un valor calculado para su uso dentro de la consulta. Calculatedvalues ​​hacen consultas complejas más fáciles de formular. Además, youcan pasar un valor calculado sobre la persona que llama para proporcionar additionaloutput información. En muchos casos, el operador let proporciona los medios para passingdata que LINQ no pasará normalmente debido a un conflicto de nombres. Uso Youcan hasta dejar operadores como requiredto proporcionan funcionalidad de consulta completa, pero se debe limitar la useof dejar a las situaciones donde un calculatedvalue mejora la velocidad de las consultas.

Exploración de LINQ Standard Query grupos de operadores

Utilización de operadores de consulta estándar hace que trabajar con Language Integrated Query (LINQ) considerablemente más fácil. En muchos sentidos, probablemente ya has trabajado con operadores de consulta simples. Por ejemplo, cuando se utiliza el orderby palabras clave, está utilizando un operador de consulta en el grupo de clasificación de operadores de consulta estándar. Cuando se utiliza el dónde palabras clave, usted está utilizando otro operador de consulta, pero esta vez es en el grupo de filtrado.

He aquí una lista de los grupos de operadores de consulta estándar y donde se puede encontrar información adicional.

GrupoDescripción del GrupoOperadores Incluidoinformacion adicional
Operaciones de agregaciónLos operadores de agregación todos le ayudan a realizar mathematicaltasks con una fuente de datos.Agregada, Promedio, Contar, LongCount, Max, Min, y SumMicrosoftDeveloper red: Agregación de Operaciones
Operaciones de concatenaciónEl único operador de concatenación permite combinar twosequences.ConcatMicrosoftDeveloper red: Operaciones de concatenación
Convertir tipos de datosLa conversión de tipos de datos vienen en dos formas: Aplazamiento andnondeferred. Los operadores de conversión diferidos convierten la resultadosde una consulta a un tipo particular como el código interpreta el conjunto de resultados. Los operadores de conversión sin diferir cambiar la salida de aquery a un tipo particular.AsEnumerable, AsQueryable, Elenco,OfType, ToArray, ToDictionary, Listar,y Para buscarMicrosoftDeveloper red: la conversión de tipos de datos
Operaciones ElementLos operadores de elementos ayudan a seleccionar un elemento en particular en asequence, incluso cuando usted no sabe cualquier identificación informationabout ese elemento, tal como su nombre.ElementAt, ElementAtOrDefault, En primer lugar, FirstOrDefault, Último,LastOrDefault, Individual y SingleOrDefaultMicrosoftDeveloper red: Operaciones Elemento
Operaciones de IgualdadEl único operador de igualdad ayuda a determinar si twosequences son iguales (el número de elementos y el contenido de eachelement son iguales).SequenceEqualMicrosoftDeveloper red: Igualdad de Operaciones
Filtrado de datosLos operadores de filtrado le ayudan a excluir o incluir elementos de secuencia ina basado en criterios específicos.OfType y dondeMicrosoftDeveloper red y filtro de datos
Operaciones de generaciónLos operadores de generación de crear una nueva secuencia basada en thecriteria usted especifique.DefaultIfEmpty, Vacío, Rango, yRepetirMicrosoftDeveloper red: Operaciones Generación
Agrupar datosLos operadores de agrupación ayudan a ordenar los datos por un particularcharacteristic, tales como la primera letra de una ofstrings grupo.Agrupar por y ToLookupMicrosoftDeveloper red: Agrupación de Datos
Únete a operacionesLos operadores se unen aceptan dos o más secuencias como entrada andcreate una secuencia de salida única basada en un determinado tipo de combinación yla unirse criterios.Únete y GroupJoinMicrosoftDeveloper red: Únete Operaciones
La partición de datosLos operadores de partición que ayudan sección de información específica de secuencia tolocate.Saltar, SkipWhile, Llevar, yTakeWhileMicrosoftDeveloper red: La partición de datos
Operaciones de ProyecciónLos operadores de proyección crean un nuevo tipo basado en la queryyou crear.Seleccionar y SelectManyMicrosoftDeveloper red: Operaciones de proyección
Operaciones cuantificadorLos operadores cuantificador ayudarle a seleccionar los elementos basados ​​criterios onspecific. Utiliza estos operadores para determinar whethernone, uno o más de los elementos cumple la selectedcriteria.Todas, Alguna,y ContieneMicrosoftDeveloper red: Operaciones cuantificador
Operaciones SetLos operadores establecidos crean conjuntos. Piense en la aritmética conjunto youperformed en la escuela.Distinto, Excepto, Intersección,y SindicatoMicrosoftDeveloper red: las operaciones Set
Ordenación de datosLos operadores de clasificación ayudan a poner una secuencia en un particularorder.OrderBy, OrderByDescending, ThenBy, ThenByDescending y ReverseMicrosoftDeveloper red: ordenar datos

Microsoft LINQ Recursos

Siempre es útil saber dónde puede ir para obtener información y herramientas adicionales y mejoras al crear su Integrated Query (LINQ) aplicaciones de idioma. Aquí está una lista de recursos de Microsoft votos para LINQ.

Microsoft Developer Network

El Microsoft Developer Network (MSDN) siempre ha proporcionado el material de referencia para todos los productos de desarrollo de Microsoft. Usted encontrará todo un almacén de información que hay - más que cualquier ser humano, probablemente puede leer en la vida. En consecuencia, es necesario tamizar la información con cuidado o te convertirás rápidamente perdido en el laberinto de MSDN. El principal sitio de MSDN para trabajar con LINQ le ofrece noticias, recursos y acceso a otra información, como muestras.

Blogs de Microsoft

Microsoft quiere que usted sepa cómo trabajar con LINQ. En el pasado, que iba a encontrar gran parte de la información que necesita en MSDN. El sitio web de MSDN sigue siendo un buen lugar para ir, pero muchos desarrolladores de Microsoft se quejó de que era un poco demasiado formal (los artículos son bastante difíciles de entender en algunos casos) y no había ninguna oportunidad de interactuar con los autores. Los blogs de Microsoft ofrecen un ambiente más amigable para la obtención de información donde se puede corresponder con el autor. Aquí hay algunos blogs que usted querrá visitar al trabajar con LINQ:

  • Bet Massi: Compartiendo la bondad que es Visual Basic (VB)

  • Charlie Calvert Comunidad Blog

  • De Wriju BLOG: .NET y Todo

La mayoría de estos blogs son genéricos - todos ellos discuten los problemas de programación de algún tipo. En consecuencia, usted encontrará una mezcla de temas en cada blog. El autor puede discutir el sistema de archivos en un solo post y LINQ en otro. Cada uno tiene entradas LINQ-específicas que se pueden buscar utilizando las funciones de búsqueda en el blog. Aunque Charlie Calvert ha dejado Microsoft, su blog contiene una gran cantidad de información general LINQ.

Los foros de Microsoft

Si usted no cree que usted está recibiendo suficiente interacción con Microsoft a través de un blog, los empleados de Microsoft menudo frecuentan los foros de Microsoft también. Cargar un mensaje al foro adecuado que puede neto un poco de ayuda profesional o al menos un poco de ayuda con conocimientos de otro miembro del foro. La mayoría de los desarrolladores confían en el foro de MSDN para cuestiones básicas sobre LINQ. Se puede ver un listado de foros en la Comunidad Microsoft. No te olvides de probar el foro específico del idioma para Visual Basic .NET.