En savoir plus sur LINQ [fermé]

189

Aperçu

L'une des choses sur lesquelles j'ai beaucoup posé de questions sur ce site est LINQ . Les questions que j'ai posées sont vastes et variées et n'ont souvent pas beaucoup de contexte derrière elles. Donc, dans le but de consolider les connaissances que j'ai acquises sur Linq, je publie cette question dans le but de la maintenir et de la mettre à jour avec des informations supplémentaires au fur et à mesure que je continue à apprendre sur LINQ.

J'espère également que ce sera une ressource utile pour d'autres personnes souhaitant en savoir plus sur LINQ.

Qu'est-ce que LINQ?

Depuis MSDN :

Le projet LINQ est un nom de code pour un ensemble d'extensions du .NET Framework qui englobe les opérations de requête, de définition et de transformation intégrées au langage. Il étend C # et Visual Basic avec la syntaxe du langage natif pour les requêtes et fournit des bibliothèques de classes pour tirer parti de ces fonctionnalités.

Cela signifie que LINQ fournit un moyen standard d'interroger une variété de sources de données à l'aide d'une syntaxe commune.

Quelles sont les saveurs de LINQ?

Il existe actuellement quelques fournisseurs LINQ différents fournis par Microsoft:

Il y en a plusieurs autres, dont beaucoup sont énumérés ici .

Quels sont les bénéfices?

  • Méthode standardisée pour interroger plusieurs sources de données
  • Sécurité du temps de compilation des requêtes
  • Méthode optimisée pour effectuer des opérations basées sur des ensembles sur des objets en mémoire
  • Possibilité de déboguer les requêtes

Alors, que puis-je faire avec LINQ?

Chook fournit un moyen de générer des fichiers CSV
Jeff montre comment supprimer les doublons d'un tableau
Bob obtient une liste ordonnée distincte à partir d'un tableau
datable Marxidad montre comment trier un tableau
Dana obtient de l'aide pour implémenter un tri rapide à l'aide de Linq

Où commencer?

Un résumé des liens de la question de GateKiller sont ci - dessous :
Scott Guthrie propose une introduction à LINQ sur son blog
Un aperçu de LINQ sur MSDN

ChrisAnnODell suggère de vérifier:

De quoi ai-je besoin pour utiliser LINQ?

Linq est actuellement disponible dans VB.Net 9.0 et C # 3.0, vous aurez donc besoin de Visual Studio 2008 ou supérieur pour bénéficier de tous les avantages. (Vous pouvez toujours écrire votre code dans le bloc-notes et le compiler à l'aide de MSBuild)

Il existe également un outil appelé LinqBridge qui vous permettra d'exécuter des requêtes comme Linq en C # 2.0.

Trucs et astuces avec LINQ

Cette question a quelques façons délicates d'utiliser LINQ

lomaxx
la source
+1 pour un excellent article et la référence au blog de ScottGu. C'est une excellente ressource et c'est là que j'ai d'abord appris LINQ.
Evan Plaice
Hooked On LINQ se rend sur un site japonais. La traduction de Google parle d'anulingus et d'autres trucs de fesses qui sont nsfw. : SI ne peut pas le modifier pour une raison quelconque, cependant.
Shane

Réponses:

6

Mentionnez LINQ to Entities puisque ADO.NET Entity Framework sera un module .NET important.

Andrei Rînea
la source
4

Obtenez le livre Linq en action, il est facile à lire pour un livre de codage et vous apprend vraiment à utiliser Linq et les nouvelles fonctionnalités de .NET 3.5, certaines des parties intéressantes qu'ils ont intégrées à la langue.

David Basarab
la source
4

Quelques conseils LINQ:

  • Appliquer des filtres avant une jointure pour améliorer les performances des requêtes
  • Filtrer les requêtes LINQ à l'aide de la comparaison de références d'objets
  • Appliquer des agrégats à des collections vides dans les requêtes LINQ to SQL
  • Délai de chargement d'une propriété dans LINQ to SQL
  • Utiliser des fonctions table avec le chargement hâtif activé
  • Placez les jointures dans le bon ordre dans une requête LINQ to Objects
  • Rédiger une requête LINQ dans une boucle

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

Konstantin Tarkus
la source
4

IMHO, un avantage négligé, mais important, est l'efficacité de codage de LINQ, par exemple ce qui peut être accompli avec si peu de code. Personnellement, je trouve la syntaxe de la requête facile à lire et à comprendre.

Matthew Sposato
la source
3

Je pense que la réponse à "Quelles saveurs de LINQ existe-t-il?" est incomplet. Tout d'abord, vous pouvez créer votre propre "saveur". Oui, c'est une tâche avancée, mais il existe actuellement de nombreuses implémentations LINQ différentes.

Voici la liste des fournisseurs LINQ existants (ainsi que d'autres ressources sur l'apprentissage de LINQ) sur le blog de Charlie Calvert: Liens vers LINQ .

Et il existe également une excellente série d'articles de blog par Matt Warren sur la façon de créer votre propre fournisseur LINQ: LINQ: Créer une série de fournisseurs IQueryable

Alexandra Rusina
la source
2

Mes 2 cents, lisez les chapitres "11 expressions de requête et LINQ to Objects" et "12 LINQ au-delà des collections" dans le livre "C # in Depth" pour comprendre comment fonctionne LINQ.

refactor
la source
0

Pour la pratique Linq

Si vous voulez un peu de pratique sur LINQ avec des exercices et des réponses, vraiment facile à mettre en place et, à mon avis, génial:

https://github.com/walkhard/linq-exercises

Téléchargez depuis git, ouvrez dans Visual Studio. Votre travail consiste à faire passer les tests.

[divulgation: j'en ai appris un peu de linq et je contribue au projet, alors oui, je pense que c'est un moyen génial, rapide et efficace d'apprendre.]

BKSpurgeon
la source