SORU
15 Mart 2011, Salı


kırma/çıkış vb.net için iç içe

nasıl ya VB.NET döngü için iç içe kurtulabilirim?

Ama atladı çıkış kullanarak çalıştı veya sadece döngü için tek bir breaked.

nasıl aşağıdaki için bunu yapabilirim:

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

CEVAP
15 Mart 2011, Salı


Ne yazık ki, exit two levels of for açıklama yok, ama ne istediğinizi yapmak için birkaç geçici çözüm vardır:

  • Git. Genel olarak kullanma goto considered to be bad practice (ve haklı yani), ama kullanma goto sadece bir ileri atlamış yapısal kontrol ifadeleri genellikle kabul edilir TAMAM, özellikle alternatif olduğu için daha karmaşık bir kod.

    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:
    
  • Kukla dış blok

    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
    

    ya

    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
    
  • Ayrı fonksiyonu: return ile çıkıldı olan ayrı bir fonksiyon içinde döngü koy. Bu parametreler çok, ama döngü içinde nasıl kullandığınıza bağlı olarak geçmesini gerektirebilir. Alternatif bu yerel değişkenler üzerinde bir kapatma oluşturur beri çok satırlı lambda içine blok koymak olacaktır.

  • Boolean değişkenBu kodu biraz daha okunabilir, ne kadar bağlı olabilir:

    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
    

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Doc Adams

    Doc Adams

    20 HAZİRAN 2007
  • The10HourMan

    The10HourMan

    28 EYLÜL 2012
  • wwjoshdo

    wwjoshdo

    25 Mayıs 2009