Bagaimana cara keluar dari foreach
loop di C # jika salah satu elemen memenuhi persyaratan?
Sebagai contoh:
foreach(string s in sList){
if(s.equals("ok")){
//jump foreach loop and return true
}
//no item equals to "ok" then return false
}
return "ok" in sList:
- bukankah ada sesuatu yang sebanding di C #?Jawaban:
Atau, jika Anda perlu melakukan beberapa hal lain setelah menemukan item tersebut:
sumber
bool found = callFunctionInFirstCodeSnipper(list); // do stuff
Gunakan
break;
dan ini akan keluar dari loop foreachsumber
Anda dapat menghindari loop eksplisit dengan mengambil rute LINQ:
sumber
Contains("ok")
.Contains
menganggap Anda sedang mengulangICollection<T>
.Any
akan bekerja pada apa pun yang bertipeIEnumerable<T>
, dan dalam kasus ini, pertanyaan tidak secara eksplisit menunjukkan jenis koleksi yang diiterasi (aList
adalah tebakan yang cukup adil).Harus melakukan trik. Pernyataan break hanya akan mengakhiri eksekusi loop, sedangkan pernyataan return jelas akan menghentikan seluruh fungsi. Menilai dari pertanyaan Anda, Anda mungkin ingin menggunakan jawaban benar; pernyataan.
sumber
Anda dapat menggunakan
break
yang melompat keluar dari loop penutup terdekat, atau Anda bisa langsungreturn true
sumber
Gunakan pernyataan 'break'. Saya merasa lucu bahwa jawaban atas pertanyaan Anda secara harfiah ada pada pertanyaan Anda! Omong-omong, pencarian Google sederhana bisa memberi Anda jawabannya.
sumber
bagaimana tentang:
Itu seharusnya melakukan trik jika yang ingin Anda lakukan hanyalah memeriksa "ok" dan mengembalikan jawabannya ...
sumber
Ini bukan jawaban langsung atas pertanyaan Anda, tetapi ada cara yang jauh lebih mudah untuk melakukan apa yang Anda inginkan. Jika Anda menggunakan .NET 3.5 atau yang lebih baru, setidaknya. Ini disebut Enumerable.Contains
sumber
sumber
Entah kembali langsung dari loop:
Atau gunakan
break
:Namun, dalam kasus Anda mungkin lebih baik melakukan sesuatu seperti ini:
sumber
sumber
$
bukan sintaks C # yang valid.var
adalah kata kunci C # yang benar -benar valid, jadi Anda baik