Aprendiendo sobre LINQ [cerrado]

189

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:

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

lomaxx
fuente
+1 para una gran publicación y la referencia al blog de ScottGu. Es un gran recurso y donde inicialmente aprendí LINQ.
Evan Plaice
Enganchado en LINQ va a algún sitio japonés. El traductor de Google habla sobre rimming y otras cosas de trasero que son nsfw. : SI no puede editarlo por alguna razón.
Shane

Respuestas:

6

Mencione LINQ a las entidades ya que ADO.NET Entity Framework será un módulo importante de .NET.

Andrei Rînea
fuente
4

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.

David Basarab
fuente
4

Algunos consejos LINQ:

  • Aplicar filtros antes de una unión para mejorar el rendimiento de la consulta
  • Filtrar consultas LINQ utilizando la comparación de referencia de objeto
  • Aplicar agregados a colecciones vacías en LINQ a consultas SQL
  • Retraso al cargar una propiedad en LINQ to SQL
  • Use funciones con valores de tabla con carga ansiosa activada
  • Poner combinaciones en el orden correcto en una consulta LINQ to Objects
  • Componer una consulta LINQ dentro de un bucle

http://www.aspnetpro.com/articles/2009/04/asp200904zh_f/asp200904zh_f.asp

Konstantin Tarkus
fuente
4

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.

Matthew Sposato
fuente
3

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

Alexandra Rusina
fuente
2

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.

refactor
fuente
0

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.]

BKSpurgeon
fuente