我在程序中有一个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.
编辑:此问题的屏幕截图…
解决方法:
我试图重现您的问题,并发现以下内容:
监视窗口似乎使用您在代码中引用(通过使用)的名称空间.
如果您不在代码文件中使用linq(和System.Linq命名空间),则监视窗口无法找到扩展名.
如果您使用的是System.Linq;并在代码中使用该名称空间中的内容,监视窗口将查找并执行linq扩展. (如果您不使用System.Linq中的任何内容,则会对引用进行优化,因此该程序集不会在运行时加载,并且调试器无法使用它).