visual - VB.NET-¿Cómo pasar al siguiente elemento a For Each Loop?
for visual basic 6 (5)
Cuando probé Continue For
it Failed, obtuve un error de compilación. Mientras hacía esto, descubrí ''Currículum'':
For Each I As Item In Items
If I = x Then
''Move to next item
Resume Next
End If
''Do something
Next
Nota: Estoy usando VBA aquí.
¿Existe una sentencia como Exit For
, excepto que en lugar de salir del bucle, simplemente pasa al siguiente elemento?
Por ejemplo:
For Each I As Item In Items
If I = x Then
'' Move to next item
End If
'' Do something
Next
Sé que podría simplemente agregar un Else
a la declaración If para que se lea de la siguiente manera:
For Each I As Item In Items
If I = x Then
'' Move to next item
Else
'' Do something
End If
Next
Solo me pregunto si hay una forma de pasar al siguiente elemento de la lista de Items
. Estoy seguro de que la mayoría se preguntará por qué no solo usa la declaración Else
, sino que al envolver el código "Do Something" parece ser menos legible. Especialmente cuando hay mucho más código.
Qué pasa:
If Not I = x Then
'' Do something ''
End If
'' Move to next item ''
Usaría la declaración Continue
lugar:
For Each I As Item In Items
If I = x Then
Continue For
End If
'' Do something
Next
Tenga en cuenta que esto es ligeramente diferente a mover el iterador en sí mismo, cualquier cosa antes de que el If
se ejecute de nuevo. Usualmente esto es lo que quieres, pero si no, tendrás que usar GetEnumerator()
y luego MoveNext()
/ Current
explícitamente en lugar de usar un bucle For Each
.
Quiero dejar claro que el siguiente código no es una buena práctica. Puede usar la etiqueta GOTO:
For Each I As Item In Items
If I = x Then
''Move to next item
GOTO Label1
End If
'' Do something
Label1:
Next
For Each I As Item In Items
If I = x Then Continue For
'' Do something
Next