Foreach

Diziler ve listelerle çalışırken for döngülerine ek olarak bir foreach döngüsü de kullanabiliriz. Foreach döngüsü, herhangi bir değişiklik yapmadan bir diziden veya listeden bilgi almak istiyorsanız çok kullanışlıdır. foreach döngüsü, bir koleksiyonun veya dizinin her bir elemanını sırayla alır ve döngü boyunca her elemanın üzerinde işlem yapmanıza olanak tanır.

foreach döngüsü, her elemanın türünü belirlemez, çünkü koleksiyonun elemanlarının türü zaten belli olmaktadır. Döngü her elemanın türünü zaten bilir ve o türe göre işlem yapar.

Örneğin aşağıdaki gibi bir dizimiz olsun.

char[] mesaj = { 'M', 'e', 'r', 'h', 'a', ‘b’, ‘a’ };

Dizinin öğelerini görüntülemek için aşağıdaki kodu kullanabilirsiniz.

char[] mesaj = { 'M', 'e', 'r', 'h', 'a', 'b', 'a' };
foreach (char i in mesaj)
{
     Console.Write(i);
}

Yukarıdaki kodda, döngü için kullanılan bir i char değişkeni görmektesiniz. Döngü her çalıştığında, mesaj dizisindeki bir eleman i değişkenine atanır. Örneğin, döngü ilk çalıştığında, ‘H’ karakteri i’ye atanır. Böylece parantezler içerisinde dizinin tüm elemanlarına sırasıyla erişmiş oluruz.

foreach döngüsü, dizilerin yanı sıra IEnumerable arabirimini uygulayan diğer koleksiyon türleri üzerinde de kullanılabilir. Örneğin, listeler, sözlükler, küme gibi koleksiyon türleri üzerinde de foreach döngüsü kullanılabilir. Bu sayede, koleksiyonun her bir elemanını tek tek işleyebilirsiniz.

foreach döngüsü ile for döngüsü birbirlerine benzemektedirler lakin foreach genellikle koleksiyonların elemanlarını dolaşmak için tercih edilirken, for döngüsü daha genel amaçlı tekrarlanan işlemler için kullanılır. Ancak her iki döngü yapısı da belirli durumlarda tercih edilebilir ve kullanım senaryolarına bağlıdır.

Aşağıdaki tablo foreach ve for ifadeleri arasındaki farkları özetlemektedir:

foreachfor
Kolay ve basit.Karmaşık ama esnek.
Tüm öğeleri yineleyin.Öğelerin tamamını veya bir alt kümesini yineleme.
Öğeler sadece okunurdur.Elemanlar değiştirilebilir.

Last Updated : 14/03/2024

Koleksiyonlar (Collection)

Dizi İçinde Dizi (Jagged Array)

2023 © Coding, Developed by alkanfatih.com