282 votes

Ce qui ' s l’aspect le plus difficile ou plus mal compris de LINQ ?

Contexte: au Cours du prochain mois, je vais être de donner trois parle ou, au moins, y compris LINQ dans le contexte de l' C#. J'aimerais savoir quels sont les sujets qui valent la peine de donner une bonne quantité d'attention, en fonction de ce que les gens peuvent trouver difficile à comprendre, ou de ce qu'ils peuvent avoir une impression erronée de. Je ne vais pas être spécifiquement parlant LINQ de SQL ou Entity Framework, sauf que des exemples de la façon dont les requêtes peuvent être exécutées à distance à l'aide de l'expression des arbres (et habituellement IQueryable).

Alors, qu'avez-vous trouvé difficile en LINQ? Qu'avez-vous vu en termes de malentendus? Les exemples pourraient être l'un des suivants, mais s'il vous plaît, ne vous limitez pas!

  • Comment l' C# compilateur traite les expressions de requête
  • Les expressions Lambda
  • Des arbres d'Expression
  • Les méthodes d'Extension
  • Les types anonymes
  • IQueryable
  • Différés vs exécution immédiate
  • Streaming vs tampon d'exécution (par exemple OrderBy est reportée, mais tamponnée)
  • Implicitement tapé les variables locales
  • La lecture complexe des signatures génériques (par exemple, Énumérable.Joindre)

271voto

JaredPar Points 333733

Exécution différée

125voto

DSO Points 5942

Je sais que la notion d’exécution différée devrait être battue en moi maintenant, mais cet exemple m’a vraiment aidé obtenir une connaissance pratique de celui-ci :

Le code ci-dessus retourne les éléments suivants :

104voto

smaclell Points 3164

Qu’il n’y a plus qu’un simple à et les fonctionnalités sont plus qu’un `` analyseur intégré dans la langue.

86voto

erikkallen Points 16601

La notation grand O. LINQ le rend incroyablement facile d’écrire des algorithmes de O(n^4) sans s’en rendre compte, si vous ne savez pas ce que vous faites.

55voto

Tim Jarvis Points 12024

Je pense que le fait qu’une expression peut résoudre à la fois une arborescence d’expression et un délégué anonyme, donc vous pouvez passer les mêmes déclarative expression à la fois les méthodes d’extension et les méthodes d’extension.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X