How to execute LINQ and/or foreach in Immediate Window in VS 2013?

我们两清 提交于 2019-12-13 11:54:00

问题


Immediate Window is fantastically useful tools when probing the current state during debugging process. I learned that by using the question mark, one can do a bit more in there as shown in this post.

However, I still don't know how to execute LINQ queries there (including lambda expressions). I've also failed to execute a foreach statement.

When executing the following statements:

?(things.Select(thing=>thing.Id);)
?(foreach(var thing in things);)

I'm getting these errors:

Expression cannot contain lambda expressions
Invalid expression term 'foreach'

(How) can I execute these in the Immediate Window?

There's also a tool in VS Gallery but it's said that it only works for VS05 and VS08, which most programmers have left behind looong time ago. I'm looking for something applicable to VS13 and/or VS15.


回答1:


According to the new features available in visual studio 2015, support for debugging lambdas is now available in the watch/immediate window:

Lambda Expressions in Debugger Windows

You can now use lambda expressions in the Watch, Immediate, and other debugger windows in C# and Visual Basic.

Source:

Visual Studio 2015 RTM




回答2:


In VS2015 you can use lambda expressions in the watch window and immediate window.

Just add the watch or type in the immediate window (While debugging and things is in scope):

things.Select(thing => thing.Id);

and you will get a list of results.

Here is a blog about this




回答3:


Unfortunately it seems impossible to use lambda's from either the immidiate window or the watch window. The technical reason for this is probabaly that linq queries are usually converted to normal expressions and that somehow this requires a full compilation step instead of the trickery used by these two windows.

In case you didn't know the thing=>thing.Id part is a lambda expression.



来源:https://stackoverflow.com/questions/33278201/how-to-execute-linq-and-or-foreach-in-immediate-window-in-vs-2013

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!