Comment exécuter LINQ et/ou foreach dans la Fenêtre exécution dans VS 2013?
Immédiate de la Fenêtre est incroyablement utiles outils lors de sonder l'état actuel pendant le processus de débogage. J'ai appris qu'en utilisant le point d'interrogation, on peut faire un peu plus là-dedans, comme indiqué dans ce post.
Cependant, je ne sais toujours pas comment exécuter des requêtes LINQ (y compris les expressions lambda). J'ai aussi n'a pas pu exécuter un foreach déclaration.
Lors de l'exécution des instructions suivantes:
?(things.Select(thing=>thing.Id);)
?(foreach(var thing in things);)
J'obtiens ces erreurs:
Expression ne peut pas contenir des expressions lambda
Non valide expression du terme 'foreach'
(Comment) puis-je exécuter dans la Fenêtre exécution?
Il y a aussi un outil dans VS Galerie mais il dit qu'il ne fonctionne que pour VS05 et VS08, la plupart des programmeurs ont laissé derrière looong temps auparavant. Je suis à la recherche de quelque chose d'applicable à VS13 et/ou VS15.
Ne pas vs2015 autoriser le débogage des lambdas dans la fenêtre espion? dirkstrauss.com/... dit Aussi ici vous pouvez utiliser la montre / fenêtre exécution.
Auriez-vous l'esprit en soulignant la partie qui est la duplication de ma question, s'il vous plaît? Je ne vois pas la ressemblance (sauf pour certains mots qui sont utilisés)...
Je pensais que votre question a été sur l'exécution des lambdas en debug/immédiat/espion windows. Et il a déjà été répondu à la question. Il y a aussi une réponse que vous pouvez réellement le faire dans VS2015, mais pas dans les versions antérieures. Mais peut-être que j'ai mal compris votre question.
OriginalL'auteur Konrad Viltersten | 2015-10-22
Vous devez vous connecter pour publier un commentaire.
Selon les nouvelles fonctionnalités disponibles dans visual studio 2015, le soutien pour le débogage des expressions lambda est maintenant disponible dans la montre/fenêtre exécution:
Source:
Visual Studio 2015 RTM
Pas beaucoup de chance de trouver quoi que ce soit encore - toujours à l'affût!
Veuillez noter qu'il ne fonctionne pas dans gérés en mode de compatibilité
OriginalL'auteur Ric
Dans VS2015 vous pouvez utiliser des expressions lambda dans la fenêtre et de la fenêtre d'exécution.
Il suffit d'ajouter le regarder ou taper dans la fenêtre exécution (Pendant le débogage et
things
est dans le champ d'application):et vous obtiendrez une liste de résultats.
Voici un blog sur cette
Malheureusement, rien de ce que je connais. Visual Studio 2015 a été publié le 20 juillet 2015.
Notez que Visual Studio 2015 Community Edition a exactement les mêmes caractéristiques que Pro (comme ça vous pouvez installer des plugins) et est totalement gratuit.
J'ai été prévenu qu'il y sont certains dans VS15 encore. Dans mon expérience, la RTM d'aujourd'hui n'est pas une version de prêt. SP1 est. 🙂 Ceci dit, ce qui est le point d'obtenir un payables VS si l'édition de la communauté a les mêmes caractéristiques?
à mon travail, nous avons tous migrés. Bien sûr, il ya quelques petits problèmes, mais il y avait aussi quelques-uns de ces en 2013. Le lien que vous avez fourni ne liste pas vraiment un problème spécifique (mauvais lien?) quelque chose vous retient? 🙂
OriginalL'auteur Jamie Rees
Malheureusement, il semble impossible d'utiliser lambda soit à partir de la immidiate fenêtre ou la fenêtre espion. La raison technique pour cela est probabaly que les requêtes linq sont généralement convertis à la normale des expressions et que d'une certaine manière cela nécessite une étape de compilation au lieu de la ruse utilisée par ces deux fenêtres.
Dans le cas où vous ne connaissiez pas le
thing=>thing.Id
partie est une expression lambda.First()
ne contient pas de lambda et n'est pas une requête Linq.First()
est défini comme une méthode d'extension pour tous les types qui implémententIEnumerable<T>
.Je ne sais pas pourquoi le
foreach
déclaration ne fonctionne pas. C'est en effet étrange!OriginalL'auteur Roy T.