Di Perl saya bisa melewatkan iteach (atau loop apa pun) dengan next;
perintah.
Apakah ada cara untuk melewatkan iterasi dan melompat ke loop berikutnya di C #?
foreach (int number in numbers)
{
if (number < 0)
{
// What goes here to skip over the loop?
}
// otherwise process number
}
Jawaban:
Kamu ingin:
Berikut ini lebih lanjut tentang
continue
kata kunci .Pembaruan: Menanggapi pertanyaan tindak lanjut Brian dalam komentar:
A
continue
selalu berlaku untuk lingkup penutup terdekat, jadi Anda tidak bisa menggunakannya untuk keluar dari loop terluar. Jika suatu kondisi seperti itu muncul, Anda harus melakukan sesuatu yang lebih rumit tergantung pada apa yang Anda inginkan, sepertibreak
dari loop dalam, kemudiancontinue
pada loop luar. Lihat di sini untuk dokumentasi tentangbreak
kata kunci . Katabreak
kunci C # mirip denganlast
kata kunci Perl .Juga, pertimbangkan untuk mengambil saran Dustin untuk hanya memfilter nilai yang tidak ingin Anda proses sebelumnya:
sumber
goto
sebenarnya berguna untuk situasi yang sedang ditanyakan oleh @Brian. Tambahkan label sepertinextArray:
di bagian bawah lingkaran luar, dan kemudiangoto nextArray;
ketika Anda ingin melompat ke sana.Pendekatan lain adalah memfilter menggunakan LINQ sebelum loop dijalankan:
sumber
Anda juga dapat membalik tes if:
sumber
sumber
Anda bisa menggunakan
continue
pernyataan itu.Sebagai contoh:
sumber
Pendekatan lain menggunakan LINQ adalah:
Jika Anda ingin melewatkan yang pertama dalam sejumlah item.
Atau gunakan
.SkipWhere
jika Anda ingin menentukan kondisi untuk dilewati.sumber
Gunakan pernyataan lanjut:
sumber
Cara termudah untuk melakukannya adalah seperti di bawah ini:
sumber