Visión general
Una de las cosas que he preguntado mucho en este sitio es LINQ . Las preguntas que he hecho han sido amplias y variadas y, a menudo, no tienen mucho contexto detrás de ellas. Entonces, en un intento de consolidar el conocimiento que adquirí en Linq, publico esta pregunta con el fin de mantenerla y actualizarla con información adicional a medida que continúo aprendiendo sobre LINQ.
También espero que resulte ser un recurso útil para otras personas que quieran aprender sobre LINQ.
¿Qué es LINQ?
De MSDN :
El Proyecto LINQ es un nombre en clave para un conjunto de extensiones de .NET Framework que abarca consultas, conjuntos y operaciones de transformación integradas en el lenguaje. Extiende C # y Visual Basic con sintaxis de lenguaje nativo para consultas y proporciona bibliotecas de clases para aprovechar estas capacidades.
Lo que esto significa es que LINQ proporciona una forma estándar de consultar una variedad de fuentes de datos utilizando una sintaxis común.
¿Qué sabores de LINQ hay?
Actualmente hay algunos proveedores diferentes de LINQ proporcionados por Microsoft:
- Linq to Objects que le permite ejecutar consultas en cualquier objeto IEnumerable.
- Linq to SQL que le permite ejecutar consultas en una base de datos de una manera orientada a objetos.
- Linq to XML que le permite consultar, cargar, validar, serializar y manipular documentos XML.
- Linq a las entidades según lo sugerido por Andrei
- Linq a conjunto de datos
Hay bastantes otros, muchos de los cuales se enumeran aquí .
¿Cuales son los beneficios?
- Forma estandarizada de consultar múltiples fuentes de datos
- Tiempo de compilación seguridad de consultas
- Forma optimizada de realizar operaciones basadas en conjuntos en objetos en memoria
- Capacidad para depurar consultas
Entonces, ¿qué puedo hacer con LINQ?
Chook proporciona una forma de generar archivos CSV.
Jeff muestra cómo eliminar duplicados de una matriz.
Bob obtiene una lista ordenada distinta de una tabla de datos.
Marxidad muestra cómo ordenar una matriz.
Dana obtiene ayuda para implementar una ordenación rápida utilizando Linq.
¿Donde empezar?
Un resumen de los enlaces de la pregunta de GateKiller están por debajo de :
Scott Guthrie proporciona una introducción a LINQ en su blog
visión general Una de LINQ en MSDN
ChrisAnnODell sugiere revisar:
¿Qué necesito para usar LINQ?
Actualmente, Linq está disponible en VB.Net 9.0 y C # 3.0, por lo que necesitará Visual Studio 2008 o superior para obtener todos los beneficios. (Siempre puede escribir su código en el bloc de notas y compilar usando MSBuild)
También hay una herramienta llamada LinqBridge que le permitirá ejecutar consultas similares a Linq en C # 2.0.
Consejos y trucos usando LINQ
Esta pregunta tiene algunas formas difíciles de usar LINQ