VB.NET - Как переместиться в следующий объект Для Каждого Цикла?

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

Например:

For Each I As Item In Items

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

    ' Do something

Next

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

For Each I As Item In Items

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

Next

Просто удивление, если существует способ перейти к следующему объекту в Items список. Я уверен, что большинство будет правильно спрашивать, почему не просто используют Else оператор, но мне переносящийся "Делает Что-то" кодирует, кажется, менее читаем. Особенно, когда существует намного больше кода.

88
задан nalply 22 August 2012 в 07:14
поделиться

4 ответа

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

    ' Do something
Next
171
ответ дан 24 November 2019 в 07:28
поделиться

Как насчет:

If Not I = x Then

  ' Do something '

End If

' Move to next item '
3
ответ дан 24 November 2019 в 07:28
поделиться

Я бы вместо этого использовал оператор Continue :

For Each I As Item In Items

    If I = x Then
        Continue For
    End If

    ' Do something

Next

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

46
ответ дан 24 November 2019 в 07:28
поделиться

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

For Each I As Item In Items

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

    ' Do something
    Label1:
Next
2
ответ дан 24 November 2019 в 07:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: