Aprendiendo sobre LINQ [en espera]
Descripción general
Una de las cosas sobre las 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. Así que en un intento de consolidar el conocimiento que he adquirido en Linq estoy publicando 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 deseen más información sobre LINQ.
¿Qué es LINQ?
De MSDN :
El proyecto LINQ es un nombre en clave para un conjunto de extensiones a. NET Marco que abarca consulta, conjunto y transformar las operaciones. Se extiende C# y Visual Basic con lengua materna sintaxis para consultas y proporciona clase bibliotecas para aprovechar estos capacidad.
Lo que esto significa es que LINQ proporciona una forma estándar de consultar una variedad de fuentes de datos usando una sintaxis común.
¿Qué sabores de LINQ hay?
Actualmente hay algunos proveedores LINQ diferentes proporcionados por Microsoft:
- Linq to Objects que permite ejecutar consultas sobre cualquier objeto IEnumerable.
- Linq to SQL que le permite ejecutar consultas en una base de datos de una manera orientada a objetos.
- Linq a XML que le permite consultar, cargar, validar, serializar y manipular documentos XML.
- Linq to entities como sugiere Andrei
- Linq to Dataset
Hay bastantes otros, muchos de los cuales se enumeran aquí.
¿cuáles son los beneficios?
- Forma estandarizada de consultar múltiples fuentes de datos
- Seguridad en el tiempo de compilación de las consultas
- Forma optimizada de realizar operaciones basadas en conjuntos en objetos de memoria
- Capacidad para depurar consultas
Entonces, ¿qué puedo hacer con LINQ?
Chook proporciona un camino a salida de archivos CSV
Jeff muestra cómo eliminar duplicados de un array
Bob obtiene una lista ordenada distinta de una datatable
Marxidad muestra cómo ordenar un array
Dana recibe ayuda para implementar un Quick Sort Usando Linq
¿Por dónde empezar?
Un resumen de enlaces de Gatekiller's pregunta están a continuación :
Scott Guthrie proporciona una introducción a Linq en su blog
Una visión general de LINQ en MSDN
ChrisAnnODell sugiere salir:
¿Qué necesito para usar LINQ?
Linq está actualmente disponible en VB.Net 9.0 y C # 3.0, por lo que necesitará Visual Studio 2008 o superior para obtenga todos los beneficios. (Siempre puedes escribir tu 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 complicadas de usar LINQ
10 answers
Aquí están 101 muestras de Linq que son una gran referencia si solo desea un ejemplo sintáctico rápido.
Tampoco olvidemos LINQPad :)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-25 10:33:57
LINQ a entidades:
Tengo mucho más que etiquetado en Delicious.com .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-28 12:11:15
Mencione LINQ a las Entidades desde ADO.NET Entity Framework será un importante módulo. NET.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-28 22:52:29
Consigue el libro Linq en acción es una lectura fácil para un libro de codificación y realmente te enseña cómo usar Linq y las nuevas características de.NET 3.5 algunas de las partes geniales que ponen para el idioma.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-30 02:02:43
Algunos consejos LINQ:
- Aplica filtros antes de una unión para mejorar el rendimiento de la consulta
- Filtrar consultas LINQ usando la comparación de referencia de objetos
- Aplicar agregados a colecciones vacías en LINQ a consultas SQL
- Retrasar la carga de una propiedad en LINQ a SQL
- Use funciones con valor de tabla con carga ansiosa activada
- Poner las uniones en el orden correcto en una consulta LINQ to Objects
- Componer una consulta LINQ dentro de una bucle
Http://www.aspnetpro.com/articles/2009/04/asp200904zh_f/asp200904zh_f.asp
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-04-03 20:14:24
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 la sintaxis de consulta fácil de leer y comprender.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-10 21:22:22
Algunas advertencias sobre el uso de LINQ para SQL :
¿Microsoft ha matado realmente a LINQ a SQL?
También hay algo de controversia sobre la primera versión de Entity Framework, incluyendo una petición .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:17:44
Creo que la respuesta a " ¿Qué sabores de LINQ hay?"está incompleta. En primer lugar, puede crear su propio "sabor". Sí, es una tarea avanzada, pero ahora hay muchas implementaciones de LINQ diferentes.
Aquí está la lista de proveedores de LINQ existentes (más 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 entradas de blog de Matt Warren sobre cómo crear su propio proveedor de LINQ: LINQ: Construyendo una serie de proveedores IQueryable
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-06 17:56:08
Mis 2 centavos , Lea los capítulos "11 Query expressions and LINQ to Objects" y "12 LINQ beyond collections" en el libro "C# in Depth" para entender cómo funciona LINQ.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-07 11:19:26
Para la Práctica Linq
Si quieres un poco de práctica en LINQ con ejercicios y respuestas, muy fácil de configurar y, en mi opinión, impresionante:
Https://github.com/walkhard/linq-exercises
Descarga desde git, abre 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 manera increíble, rápida y eficiente de aprender.]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-28 00:34:07