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
Respuestas:
LINQ a entidades:
Tengo muchas más etiquetas en Delicious.com .
fuente
Mencione LINQ a las entidades ya que ADO.NET Entity Framework será un módulo importante de .NET.
fuente
Obtenga el libro Linq en acción , es una lectura fácil para un libro de codificación y realmente le enseña cómo usar Linq y las nuevas características de .NET 3.5, algunas de las partes interesantes que incorporaron para el lenguaje.
fuente
Algunos consejos LINQ:
http://www.aspnetpro.com/articles/2009/04/asp200904zh_f/asp200904zh_f.asp
fuente
En mi humilde opinión, un beneficio pasado por alto pero importante es la eficiencia de codificación de LINQ, por ejemplo, cuánto se puede lograr con tan poco código. Personalmente, encuentro que la sintaxis de consulta es fácil de leer y comprender.
fuente
Algunas advertencias sobre el uso de LINQ to SQL :
¿Microsoft realmente mató a LINQ to SQL?
¿Es LINQ to SQL DOA?
También existe cierta controversia sobre la primera versión de Entity Framework , incluida una petición .
fuente
Creo que la respuesta a "¿Qué sabores de LINQ hay?" Está incompleto. En primer lugar, puede crear su propio "sabor". Sí, es una tarea avanzada, pero ahora hay muchas implementaciones diferentes de LINQ.
Aquí está la lista de proveedores de LINQ existentes (además de algunos recursos más sobre el aprendizaje de LINQ) en el blog de Charlie Calvert: Enlaces a LINQ .
Y también hay una excelente serie de publicaciones de blog de Matt Warren sobre cómo crear su propio proveedor LINQ: LINQ: Construyendo una serie de proveedores IQueryable
fuente
Mis 2 centavos, lea los capítulos "11 expresiones de consulta y LINQ to Objects" y "12 LINQ beyond collections" en el libro "C # en profundidad" para comprender cómo funciona LINQ.
fuente
Para la práctica de Linq
Si quieres algo de práctica en LINQ con ejercicios y respuestas, realmente fácil de configurar y, en mi opinión, increíble:
https://github.com/walkhard/linq-exercises
Descargar desde git, abrir en Visual Studio. Tu trabajo es hacer pasar las pruebas.
[divulgación: aprendí algo de linq y contribuyo al proyecto, así que sí, creo que es una forma increíble, rápida y eficiente de aprender.]
fuente