C#’da for-each döngüsü dizi, liste, arraylist gibi koleksiyon tabanlı nesneler içerisindeki tüm elemanlara sırayla erişmek için özelleştirilmiş bir döngü çeşididir. Veri grubunun eleman sayısı bilinmediği durumlarda for döngüsüne göre daha kullanışlı olmasından dolayı tercih edilmektedir.
Kullanımı çok basit olan foreach döngüsünün genel yapısı aşağıdaki gibidir.
Foreach (degisken_tipi degisken_adi in liste){
//Döngü bloğu kodları
}
Döngü bloğuna dikkat edildiğinde i,j gibi bir sayaç değeri takip etmeye gerek olmadan liste içerisindeki her elemana indis numarasına göre sırayla erişildiğini görebilirsiniz. Konunun daha iyi anlaşılması için bir örnek üzerinden devam edelim.
Örnek 1: For each döngüsü ile dizi içerisinde ki elemanları sırayla ekrana yazdıralım.
1 2 3 4 5 6 |
string[] dizi = { "Kutlay", "Melek", "Nesrin", "Ahmet", "Murat" }; foreach (string eleman in dizi) { Console.WriteLine(eleman); } |
For-each kullanımında dikkat edilmesi gereken noktalardan bir tanesi koleksiyondaki elemanların veri tipiyle belirlediğimiz değişkenin tipinin uyumlu olmasıdır.
Örnek 2: ArrayList içerisinde ki verileri toplayarak sonucu ekranda gösterelim.
1 2 3 4 5 6 7 8 9 10 11 12 |
int toplam = 0; ArrayList liste = new ArrayList(); liste.Add(45); liste.Add(24); liste.Add(61); foreach (int x in liste) { toplam = toplam + x; } Console.WriteLine(toplam); |
Foreach döngüsü de diğer döngüler gibi istenildiğinde break deyimi ile sonlandırılabilir.
Örneklerde görüldüğü üzere for-each döngüsü dizi veya listede ki eleman sayısına ihtiyaç duymadan tüm elemanlara sırayla erişerek işlem yapmaktadır.