C# 新手:找出 foreach 块中的索引

2024-01-24

我有一个 foreach 块,我想在其中绘制 foreach 内步骤的索引以用于跟踪调试目的。作为一个 C# 新手,我这样做:

int i = 1;

foreach (x in y)
{
    ... do something ...
    WriteDebug("Step: "+i.ToString());
    i++;
}

我想知道是否有任何方法可以获取当前步骤索引的值,而无需为此目的显式创建变量。

编辑:为了澄清,我显然熟悉 for 循环的选项,但它不是我正在经历的数组,而是一个无序集合。编号的原因只是为了显示调试级别的进度,没有其他目的。


与其他一些答案相反,我非常乐意混合foreach带计数器(根据问题中的代码)。这保留了您使用的能力IEnumerable[<T>]而不是需要索引器。

但如果你愿意,在 LINQ 中:

    foreach (var pair in y.Select((x,i) => new {Index = i,Value=x})) {
        Console.WriteLine(pair.Index + ": " + pair.Value);
    }

(问题中的计数器方法更简单、更有效,但上面的方法应该更好地映射到一些场景,例如 Parallel.ForEach)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 新手:找出 foreach 块中的索引 的相关文章

随机推荐