foreach中使用index,以下内容由chatGpt生成 😀
在编程中,我们经常需要使用 foreach 循环来遍历一个集合。但是,在某些情况下,我们需要获取当前循环的索引值,以便进行一些操作。那么,在 foreach 循环中如何拿到每次循环的 index 呢?
最近我遇到了这个问题,经过一番搜索和尝试,我找到了一个解决方案:循环一个元组。
具体来说,我们可以使用 Select 方法生成一个包含索引值的元组,然后使用 var (singleBeamGroup, index) 语法糖来同时声明两个变量,其中 index 变量将包含当前循环的索引值。代码如下:
foreach (var (singleBeamGroup, index) in beamGroups.Select((value, i) => (value, i)))
{
// 在这里使用 index 变量,它将包含当前循环的索引值
}
在这段代码中,我们首先使用 Select 方法将 beamGroups 集合转换为一个包含索引值的元组序列。其中,value 表示集合中的每个元素,i 表示元素在集合中的索引值。
然后,我们使用 var (singleBeamGroup, index) 语法糖来同时声明两个变量。这里的 singleBeamGroup 变量表示当前循环的集合元素,index 变量表示当前循环的索引值。
通过这种方式,我们就可以在 foreach 循环中拿到每次循环的 index 了。
需要注意的是,这种方法仅适用于 C# 7.0 及以上版本。如果你使用的是较早的版本,可以考虑使用传统的 for 循环来获取索引值。