Foreach listeler ya da diziler üzerinde işlem yapmak için kullanılan döngü yapısıdır. Özellikle eleman sayısının bilinmediği durumlarda büyük kolaylık sağlamaktadır.
Aşağıdaki örnekte Foreach döngüsü kullanılarak string bir dizi oluşturulup bu dizinin elemanlarının yazdırılması işlemi yapılmıştır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class Program { static void Main(string[] args) { string[] isimler = {"Ahmet CANSEVER","Emirhan SOYLU","Elif SÜTÇÜ", "Hakan ALTIN","Sema ÇALIŞKAN"}; foreach(string eleman in isimler) { Console.WriteLine(eleman); } Console.ReadKey(); } |
Programı çalıştırdığımızda isimler dizisindeki elemanların ekrana yazdırıldığını görüyoruz.
Örnek 2:
Foreach döngüsü kullanılarak form üzerindeki elemanlara da erişilebilir. Örnek olarak form üzerinde bulunan textbox’lara erişerek arkaplan rengini ve yazı renkleri değiştiren programı inceleyelim.
Aşağıdaki gibi bir form oluşturalım.
Daha sonra butona çift tıklayarak aşağıdaki kodları yazalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 | private void button1_Click(object sender, EventArgs e) { foreach(Control nesne in this.Controls) { if((nesne) is TextBox) { nesne.BackColor = Color.Red; nesne.ForeColor = Color.White; } } } |
Programımızı çalıştırıp butona tıkladığımızda aşağıdaki gibi textboxların arka zemin renklerinin ve yazı renklerinin değiştiğini göreceğiz.
Örnek 3:
Diğer bir örneğimizde ise 20 elemanlı bir diziye 1-100 arası rasgele değer atarak bu diziyi Foreach döngüsü kullanarak yazdırma ve dizi içindeki en büyük ve en küçük değerini yazdırma işlemini gerçekleştirelim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | static void Main(string[] args) { int[] dizi = new int[20]; Random rnd = new Random(); for(int i=0;i<dizi.Length;i++) { dizi[i] = rnd.Next(1,100); } int kucuk = dizi[0]; int buyuk = dizi[0]; foreach (int value in dizi) { Console.WriteLine(value); if (value < kucuk) { kucuk = value; } if (value > buyuk) { buyuk = value; } } Console.WriteLine("En büyük değer : {0}", buyuk); Console.WriteLine("En küçük değer : {0}", kucuk); Console.ReadKey(); } |
Ekran Çıktısı:
Merhaba ben grid üzerindeki buttonları kontrol etmek istiyorum yardımcı olurmusunuz