Vb.net 对于每个循环迭代计数

Vb.net 对于每个循环迭代计数,vb.net,foreach,iteration,Vb.net,Foreach,Iteration,当我们为每个使用一个时,我们能跟踪循环中的迭代吗?我喜欢使用For-Each循环在我的对象中循环,但是我似乎找不到一种方法来保存我在循环中的位置的索引。当然,除非我自己创建…您可以这样做: Dim index as integer = 0 For Each item in list 'do stuff index += 1 Next 当然,根据您迭代的集合,无法保证项与列表相同。项(索引),但这是否重要取决于您正在做什么 For index as integer

当我们为每个使用一个时,我们能跟踪循环中的迭代吗?我喜欢使用For-Each循环在我的对象中循环,但是我似乎找不到一种方法来保存我在循环中的位置的索引。当然,除非我自己创建…

您可以这样做:

 Dim index as integer = 0
 For Each item in list
      'do stuff
      index += 1
 Next
当然,根据您迭代的集合,无法保证
列表相同。项(索引)
,但这是否重要取决于您正在做什么

For index as integer = 0 to list.count - 1
     Dim item = list.item(index)
     'do stuff
Next

如果您需要
列表相同,则这是另一种选择。项(索引)
如果您想要索引,请对每个使用
循环,而不是
。这就是它存在的原因

For i As Int32 = 0 To objects.Count - 1
    Dim obj = objects(i)
Next
当然,没有什么可以阻止您创建自己的计数器:

Dim counter As Int32 = 0
For Each obj In objects
    counter += 1
Next
或者您可以使用Linq:

Dim query = objects.Select(Function(obj, index) "Index is:" & index)

目前还没有内置的解决方案。当然,你知道如何使用计数器,但也许你正在寻找什么(通过)

啊,好吧,是的,我就是这么想的。只是想确定一下!谢谢