当我们使用 For Each 时,我们是否可以在循环中跟踪迭代?我喜欢使用For Each循环来遍历我的对象,但我似乎无法找到一种方法来保持循环中我所处的位置的索引。除非我自己创造自己的......
答案 0 :(得分:4)
如果您想拥有索引,请使用For
- 循环而不是For each
。这就是它存在的原因。
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)
答案 1 :(得分:1)
答案 2 :(得分:0)
你可以这样做:
Dim index as integer = 0
For Each item in list
'do stuff
index += 1
Next
当然,根据你的迭代收集,不能保证item
与list.item(index)
相同,但重要的是否取决于你在做什么。
For index as integer = 0 to list.count - 1
Dim item = list.item(index)
'do stuff
Next
如果您需要item
与list.item(index)
相同,那么这是另一种选择。