如何在VS 2013的即时窗口中执行LINQ和/或foreach



在调试过程中探测当前状态时,Immediate Window是非常有用的工具。我了解到,通过使用问号,可以在这里做更多的事情,正如这篇文章所示。

然而,我仍然不知道如何执行LINQ查询那里(包括 lambda表达式)。我也没有执行foreach语句。

执行以下语句时:

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

我得到这些错误:

表达式不能包含lambda表达式
无效表达式"foreach"

(如何)我可以执行这些在立即窗口?

在VS Gallery中也有一个工具,但据说它只适用于VS05和VS08,大多数程序员很久以前就放弃了。我正在寻找适用于VS13和/或VS15的东西

根据visual studio 2015中可用的新特性,现在可以在watch/immediate窗口中调试lambdas:

调试器Windows中的Lambda表达式

现在可以在Watch、Immediate和c#和Visual Basic中的其他调试器窗口。

源:

Visual Studio 2015 RTM

在VS2015中,您可以在监视窗口和即时窗口中使用lambda表达式。

只需在直接窗口中添加手表或类型(当调试和things在范围内时):

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

,你会得到一个结果列表。

这是一个关于这个的博客

不幸的是,似乎不可能从直接窗口或监视窗口使用lambda。这样做的技术原因可能是linq查询通常被转换为普通表达式,这需要一个完整的编译步骤,而不是像这两个窗口那样使用技巧。

如果您不知道thing=>thing.Id部分是lambda表达式

相关内容

  • 没有找到相关文章

最新更新