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:
foreach | for |
---|---|
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. |