VB.NET — альтернатива «Продолжить» для Visual Studio 2003

Я пытаюсь перейти к следующей записи в цикле for.

For Each i As Item In Items
    If i = x Then
        Continue For
    End If

    ' Do something
Next

В Visual Studio 2008 я могу использовать «Продолжить». Но в VS Visual Studio 2003 этого не существует. Есть ли альтернативный метод, который я мог бы использовать?


person Urbycoz    schedule 24.02.2011    source источник


Ответы (5)


Ну, вы могли бы просто ничего не делать, если ваше условие верно.

For Each i As Item in Items
    If i <> x Then ' If this is FALSE I want it to continue the for loop
         ' Do what I want where
    'Else
        ' Do nothing
    End If
Next
person Smur    schedule 24.02.2011
comment
Работает для моего примера. Спасибо. - person Urbycoz; 24.02.2011

Продолжить, из того, что я прочитал, не существует в VS2003. Но вы можете переключить свое условие, чтобы оно выполнялось только тогда, когда условие не выполняется.

For Each i As Item In Items
  If i <> x Then
    ' run code -- facsimile of telling it to continue.
  End If
End For
person Brad Christie    schedule 24.02.2011

Это не так красиво, но просто отрицайте If.

For Each i As Item In Items
    If Not i = x Then 

    ' Do something
    End If
Next
person Hans Olsson    schedule 24.02.2011
comment
Почему бы не использовать оператор ‹›? - person Peter Mortensen; 01.06.2017

Вы можете использовать оператор GoTo с меткой в ​​конце тела цикла.

For Each i As Item In Items
    If i = x Then GoTo continue
    ' Do somethingNext
    continue:
    Next
person Evgeny Gavrin    schedule 24.02.2011
comment
Я знаю, что операторы goto непопулярны, но на самом деле это кажется более общим решением, чем любое другое. - person Urbycoz; 24.02.2011

Может быть излишним в зависимости от вашего кода, но вот альтернатива:

For Each i As Item In Items
    DoSomethingWithItem(i)
Next

...

Public Sub DoSomethingWithItem(i As Item)
    If i = x Then Exit Sub
    'Code goes here
End Sub
person Meta-Knight    schedule 24.02.2011