我有(调试)需要*来编写以下单个语句:
using System.Diagnostics;
using System.Linq;
// ...
Enumerable.Range(0, 10).ToList().ForEach(x => Debug.WriteLine(x));
但没有使用uses,例如:
System.Linq.Enumerable.Range(0, 10).ToList().ForEach(x => System.Diagnostics.Debug.WriteLine(x));
但由于ToList上下文未知,因此无法编译: 错误CS1061:'IEnumerable'不包含'ToList'的定义,并且没有扩展方法'ToList'接受类型'IEnumerable'的第一个参数可以找到(你是否缺少using指令或程序集引用?)
我的问题是:如何为ToList()指定命名空间上下文?
*这是一个人为的例子。实际上,我需要一种在运行时,在调试器即时窗口中迭代数据/函数的方法,在某些情况下,执行可能不在System.Linq的上下文中。
使用Visual Studio 2015
答案 0 :(得分:4)
<a>
答案 1 :(得分:3)
您可以将扩展方法称为静态方法:
System.Linq.Enumerable.ToList(System.Linq.Enumerable.Range(0, 10))
.ForEach(x => System.Diagnostics.Debug.WriteLine(x));
但是,您无法从调试器中的Debug.WriteLine
调用ForEach
,但调试器仍会显示结果:
System.Linq.Enumerable.ToList(System.Linq.Enumerable.Range(0, 10))