sɐu*_*qɐp 5 c# linq debugging visual-studio visual-studio-2017
我在程序中有一个byte []变量,例如:
byte[] myByteArray = new byte[] { 0xF0, 0x0F };
Run Code Online (Sandbox Code Playgroud)
在调试该程序时,我想在Visual Studio的“监视”窗口中将字节数组的内容显示为单个十六进制值。
因此,我尝试在监视窗口中使用以下LINQ表达式,但未成功:
myByteArray.Select(value => value.ToString("X2")).ToArray()
Run Code Online (Sandbox Code Playgroud)
监视窗口的错误消息:
错误CS1061:“ byte []”不包含“ Select”的定义,并且找不到找到接受类型为“ byte []”的第一个参数的扩展方法“ Select”(您是否缺少using指令或程序集引用? )
有谁知道在Visual Studio的“监视”窗口中是否有一种无需安装第三方扩展即可使用LINQ表达式的方法?
我目前正在使用VS2017 15.6.6。
编辑:此问题的屏幕截图...
bad*_*die 12
如果代码中没有 'using System.Linq' 语句,您仍然可以通过手动调用扩展方法来使用 Linq 查询:
System.Linq.Enumerable.Select(collection, x=>x.Name)
Run Code Online (Sandbox Code Playgroud)
我试图重现您的问题并发现以下内容:
似乎监视窗口使用了您using
在代码中引用(通过)的命名空间。
如果System.Linq
在代码文件中不使用 linq(和命名空间),监视窗口将找不到扩展名。
如果你有一个using System.Linq;
和使用来自该命名空间在你的代码什么的,监视窗口中找到并执行LINQ扩展。(如果您不使用System.Linq
引用中的任何内容被优化掉,那么这个程序集不会在运行时加载并且调试器不能使用它)。
归档时间: |
|
查看次数: |
1089 次 |
最近记录: |