在Visual Studio的监视窗口中使用LINQ表达式

我在程序中有一个byte []变量,例如:

byte[] myByteArray = new byte[] { 0xF0, 0x0F };

在调试该程序时,我想在Visual Studio的“监视”窗口中将字节数组的内容显示为单个十六进制值.

因此,我尝试在监视窗口中使用以下LINQ表达式,但未成功:

myByteArray.Select(value => value.ToString("X2")).ToArray()

监视窗口的错误消息:

error CS1061: ‘byte[]’ does not contain a definition for ‘Select’ and
no extension method ‘Select’ accepting a first argument of type
‘byte[]’ could be found (are you missing a using directive or an
assembly reference?)

有谁知道在Visual Studio的“监视”窗口中是否有一种无需安装第三方扩展即可使用LINQ表达式的方法?

我目前正在使用VS2017 15.6.6.

编辑:此问题的屏幕截图…

在Visual Studio的监视窗口中使用LINQ表达式

解决方法:

我试图重现您的问题,并发现以下内容:

监视窗口似乎使用您在代码中引用(通过使用)的名称空间.

如果您不在代码文件中使用linq(和System.Linq命名空间),则监视窗口无法找到扩展名.

如果您使用的是System.Linq;并在代码中使用该名称空间中的内容,监视窗口将查找并执行linq扩展. (如果您不使用System.Linq中的任何内容,则会对引用进行优化,因此该程序集不会在运行时加载,并且调试器无法使用它).

上一篇:javascript-在Chrome中调试.vue组件


下一篇:是否有调用C语言中的堆栈转储的函数?