Ломать / выходить в vb.net

Как выйти из вложенных или циклических в vb.net?

Я попытался использовать выход, но он прыгнул или сломал только один для цикла.

Как я могу сделать это для следующего:

for each item in itemList for each item1 in itemList1 if item1.text = "bla bla bla" then exit for end if end for end for 

    К сожалению, нет exit two levels of for утверждения, но есть несколько способов обхода, которые вы хотите сделать:

    • Перейти . В общем случае использование goto считается плохой практикой (и это справедливо), но использование goto исключительно для прямого перехода из структурированных управляющих операторов обычно считается ОК, особенно если альтернатива заключается в более сложном коде.

       For Each item In itemList For Each item1 In itemList1 If item1.Text = "bla bla bla" Then Goto end_of_for End If Next Next end_of_for: 
    • Фиктивный внешний блок

       Do For Each item In itemList For Each item1 In itemList1 If item1.Text = "bla bla bla" Then Exit Do End If Next Next Loop While False 

      или

       Try For Each item In itemlist For Each item1 In itemlist1 If item1 = "bla bla bla" Then Exit Try End If Next Next Finally End Try 
    • Отдельная функция : Поместите петли внутри отдельной функции, с которой можно return с return . Это может потребовать, чтобы вы передавали множество параметров, хотя, в зависимости от того, сколько локальных переменных вы используете внутри цикла. Альтернативой было бы включение блока в многострочный lambda, поскольку это создаст замыкание по локальным переменным.

    • Логическая переменная : это может сделать ваш код немного менее читаемым, в зависимости от того, сколько слоев вложенных циклов у вас есть:

       Dim done = False For Each item In itemList For Each item1 In itemList1 If item1.Text = "bla bla bla" Then done = True Exit For End If Next If done Then Exit For Next 

    Поместите циклы в подпрограмму и вызовите return

    Я экспериментировал с типизацией «exit for» несколько раз и заметил, что это сработало, и VB не кричал на меня. Это вариант, я думаю, но это выглядело плохо.

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

     For Each item In itemlist For Each item1 In itemlist1 If item1 = item Then Return item1 End If Next Next 

    Сделайте внешний цикл циклом while и «Exit While» в инструкции if.

     For i As Integer = 0 To 100 bool = False For j As Integer = 0 To 100 If check condition Then 'if condition match bool = True Exit For 'Continue For End If Next If bool = True Then Continue For Next 

    Попробуйте использовать «Выход для».

    Это работа для меня.

    😉

    Давайте будем гением компьютера.