VB.NET - Как перейти к следующему элементу a Для каждого цикла?

Есть ли такой статус, как Exit For, но вместо того, чтобы выйти из цикла, он просто переходит к следующему элементу.

Например:

For Each I As Item In Items

    If I = x Then 
        ' Move to next item
    End If

    ' Do something

Next

Я знаю, может просто добавить Else в оператор If, чтобы он читал следующее:

For Each I As Item In Items

    If I = x Then 
        ' Move to next item
    Else
        ' Do something
    End If

Next

Просто интересно, есть ли способ перейти к следующему элементу в списке Items. Я уверен, что большинство из них правильно спросят, почему бы просто не использовать оператор Else, но для меня упаковка кода "Do Something" кажется менее читаемой. Особенно, когда кода намного больше.

Ответ 1

For Each I As Item In Items
    If I = x Then Continue For

    ' Do something
Next

Ответ 2

Вместо этого я бы использовал инструкцию Continue:

For Each I As Item In Items

    If I = x Then
        Continue For
    End If

    ' Do something

Next

Обратите внимание, что это немного отличается от перемещения самого итератора - ничего перед тем, как If будет выполнен снова. Обычно это то, что вы хотите, но если нет, вам придется использовать GetEnumerator(), а затем MoveNext()/Current явно, а не использовать цикл For Each.

Ответ 3

Как насчет:

If Not I = x Then

  ' Do something '

End If

' Move to next item '

Ответ 4

Я хочу быть ясным, что следующий код не является хорошей практикой. Вы можете использовать метку GOTO:

For Each I As Item In Items

    If I = x Then
       'Move to next item
        GOTO Label1
    End If

    ' Do something
    Label1:
Next

Ответ 5

Когда я попробовал Continue For, он сработал, я получил ошибку компилятора. Выполняя это, я обнаружил "Возобновить":

For Each I As Item In Items

    If I = x Then
       'Move to next item
       Resume Next
    End If

    'Do something

Next

Примечание: здесь я использую VBA.