能否在Visual Studio监视窗口中仅查看C#集合的指定范围子集
VS调试C#列表查看指定索引范围元素的解决方法
你遇到的预定义类型“System.Range”未定义或未导入报错,原因是[500..550]的Range索引语法是C# 8.0新增特性,仅原生支持.NET Core 3.0、.NET 5及更高版本的目标框架,低版本框架(如.NET Framework)不内置该类型,且调试监视窗口默认不会自动补全未导入的命名空间,因此直接写Range语法会报错。
可通过以下几种方式实现查看500~550号元素的需求:
- 方法1:使用LINQ方法(适配所有.NET Framework 3.5+、.NET Core版本)
直接在监视窗口输入以下表达式即可:items.Skip(500).Take(51)
注:500到550共51个元素,因此Take参数为51。如果当前上下文未导入System.Linq命名空间,可写全路径避免报错:System.Linq.Enumerable.Take(System.Linq.Enumerable.Skip(items, 500), 51)
输入后展开结果视图即可看到对应范围的元素。 - 方法2:显式指定Range全路径(适配支持Range语法的高版本框架)
不想用LINQ的话可以显式写全Range类型路径,避免命名空间未导入的问题:items[new System.Range(500, 550)] - 方法3:直接调整监视窗口的列表起始索引(无需写代码)
在监视窗口展开items列表,右键点击任意一个元素行,选择【从指定索引开始显示】,输入500后确认,后续展开的元素就会从第500号开始展示,直接向下翻到550号即可查看。
内容的提问来源于stack exchange,提问作者Tim Gradwell
相关产品推荐
相关产品推荐

