如何在 VS 2013 的 Immediate Window 中执行 LINQ and/or foreach?
How to execute LINQ and/or foreach in Immediate Window in VS 2013?
Immediate Window 在调试过程中探测当前状态时是非常有用的工具。我了解到,通过使用问号,可以在其中做更多的事情,如图 .
但是,我仍然不知道如何在那里执行 LINQ 查询(包括 lambda 表达式)。我也未能执行 foreach 语句。
执行以下语句时:
?(things.Select(thing=>thing.Id);)
?(foreach(var thing in things);)
我遇到了这些错误:
Expression cannot contain lambda expressions
Invalid expression term 'foreach'
(如何)我可以立即执行这些 Window?
VS Gallery中也有一个工具,但据说它只适用于 VS05 和 VS08,大多数程序员很久以前就把它抛在脑后了。我正在寻找适用于 VS13 and/or VS15.
的东西
不幸的是,似乎无法使用即时 window 或监视 window 中的 lambda。技术原因可能是 linq 查询通常被转换为普通表达式,并且不知何故这需要一个完整的编译步骤而不是这两个 windows.
使用的技巧
如果您不知道 thing=>thing.Id
部分是 lambda 表达式。
在 VS2015 中,您可以在监视 window 和立即数 window 中使用 lambda 表达式。
只需添加手表或立即输入 window(调试时 things
在范围内):
things.Select(thing => thing.Id);
你会得到一个结果列表。
这是一篇关于 this
的博客
根据 visual studio 2015 中可用的新功能,现在可以在 watch/immediate window:
中支持调试 lambdas
Lambda Expressions in Debugger Windows
You can now use lambda expressions in the Watch, Immediate, and
other debugger windows in C# and Visual Basic.
来源:
Immediate Window 在调试过程中探测当前状态时是非常有用的工具。我了解到,通过使用问号,可以在其中做更多的事情,如图
但是,我仍然不知道如何在那里执行 LINQ 查询(包括 lambda 表达式)。我也未能执行 foreach 语句。
执行以下语句时:
?(things.Select(thing=>thing.Id);)
?(foreach(var thing in things);)
我遇到了这些错误:
Expression cannot contain lambda expressions
Invalid expression term 'foreach'
(如何)我可以立即执行这些 Window?
VS Gallery中也有一个工具,但据说它只适用于 VS05 和 VS08,大多数程序员很久以前就把它抛在脑后了。我正在寻找适用于 VS13 and/or VS15.
的东西不幸的是,似乎无法使用即时 window 或监视 window 中的 lambda。技术原因可能是 linq 查询通常被转换为普通表达式,并且不知何故这需要一个完整的编译步骤而不是这两个 windows.
使用的技巧如果您不知道 thing=>thing.Id
部分是 lambda 表达式。
在 VS2015 中,您可以在监视 window 和立即数 window 中使用 lambda 表达式。
只需添加手表或立即输入 window(调试时 things
在范围内):
things.Select(thing => thing.Id);
你会得到一个结果列表。
这是一篇关于 this
的博客根据 visual studio 2015 中可用的新功能,现在可以在 watch/immediate window:
中支持调试 lambdasLambda Expressions in Debugger Windows
You can now use lambda expressions in the Watch, Immediate, and other debugger windows in C# and Visual Basic.
来源: