如何在不使用C#的情况下编写语句

我有一个(调试)需求*,可以编写以下单个语句:


using System.Diagnostics;

using System.Linq;

// ...

Enumerable.Range(0, 10).ToList().ForEach(x => Debug.WriteLine(x));

但不使用usings,则类似于:


System.Linq.Enumerable.Range(0, 10).ToList().ForEach(x => System.Diagnostics.Debug.WriteLine(x));

但这无法编译,因为ToList上下文是未知的:错误CS1061:“ IEnumerable”不包含“ ToList”的定义,并且找不到扩展方法“ ToList”接受类型为“ IEnumerable”的第一个参数(是否缺少使用指令或程序集引用?)


我的问题是:如何为ToList()指定名称空间上下文?


*这是一个人为的例子。实际上,我需要一种在运行时,在调试器立即窗口中迭代数据/函数的方法,在某些情况下,执行可能不在System.Linq的上下文中。


使用Visual Studio 2015


qq_遁去的一_1
浏览 150回答 2
2回答

哈士奇WWW

System.Linq.Enumerable.ToList(System.Linq.Enumerable.Range(0, 10))     .ForEach(x => System.Diagnostics.Debug.WriteLine(x));

萧十郎

您可以将扩展方法称为静态方法: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))
打开App,查看更多内容
随时随地看视频慕课网APP