【发布时间】:2009-07-28 07:39:52
【问题描述】:
我有一个 foreach 块,我想在其中绘制 foreach 内的步骤索引以进行跟踪调试。作为一个 C# 新手,我这样做如下:
int i = 1;
foreach (x in y)
{
... do something ...
WriteDebug("Step: "+i.ToString());
i++;
}
我想知道是否有任何方法可以获取当前步骤索引的值,而无需为此目的显式创建变量。
编辑:澄清一下,我显然很熟悉 for 循环的选项,但它不是我正在经历的数组,而是一个无序的集合。编号的原因只是为了显示调试级别的进度,没有其他目的。
【问题讨论】:
-
集合上是否没有 Count 或 Length 属性?你在循环一个基本的枚举器吗?
-
@Binary Warrior:在考虑 for 循环时,困扰我的不是计数或长度,而是索引随机访问。我正在使用由 COM 对象公开的集合,该对象的“记录”访问方法正在使用 foreach 迭代器。它也是非常干净的代码。所以我想保留foreach,我更喜欢保留显式变量定义,而不是用for循环替换foreach,我需要去搜索索引随机访问方法(并且在我看来让我的代码不那么干净) .