İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp

C# Foreach Döngüsü Kullanımı

C# Foreach Döngüsü Kullanımı
+ - 2

C# Foreach Döngüsü Kullanımı dersi ile c sharp eğitimlerimize devam ediyoruz. Foreach döngüsü, for döngüsünün aksine kaç kere döneceğini önceden bilemeyiz. Daha doğrusu şu kadar dön diye bir belirtme yapmayız. Bir dizinin boyutu yada bir kontrol listesi üzerinden çalışırız. Örnek vermek gerekirse, bir form içerisindeki kontroller üzerinden bir işlem yapacaksak foreach döngüsü kullanırız. C Sharp Foreach Döngüsü Kullanımı nasıl tanımlanır ve nasıl kullanılır bir bakalım…

 

C Sharp Foreach Döngüsü Kullanımı 

Tanımlanması;

foreach (değişkenTipi adı in Dizi) 
{

}

Dizi içerisindeki eleman sayısı kadar işlem yapacaktır. Yalnız burada dizi yazıyor olmasına bakmayın. Her tür ile işlem yapabilirsiniz. Bu bir dizi olur, list olur yada formdaki textbox lar olur….

Kullanımı;

Örnek olarak bir formdaki tüm textbox’ların arkaplan rengini sarı yapabileceğimiz bir foreach döngüsü yazalım.

            foreach (Control item in this.Controls)
            {
                // From içerisindeki tüm nesneler 
                if (item.ToString() == "System.Windows.Forms.Textbox") // item TextBox ise
                {
                    item.BackColor = Color.Yellow;
                }
            }

NOT: C# da her nesnenin tam adı vardır. Daha doğrusu ait olduğu bir namespace vardır. Bu isimleri;

MessageBox.Show(textbox1.ToString());

şeklinde öğrenebilirsiniz. Yada properties ekranında

c# foreach nedirsarı işaretli alanda görebilirsiniz.

Ayrıca örnek kodumuzda gördüğünüz gibi, control dediğim için tüm kontroller için ortak olan özelliklere kolayca ulaşabilir ve tüm nesnelere değişiklik yapabiliriz.

Yukarıdaki örnek hakkında bir şey daha demem gerekiyor. Diyelim ki formda üç group box var. ve groupbox ların içlerinde de textboxlar vs var. Bu groupBox nesnelerinin içlerindeki nesnelere de ulaşmak istiyorsanız iç içe foreach döngüsü yazmalısınız. tek foreach ile sadece groupBox’lara ulaşmış olursunuz bu sebeple de iç kısımda kalan nesnelerde bir değişiklik söz konusu olmaz. Bu işlemi de aşağıdaki örnekteki gibi yapabilirsiniz.

Bu işlem için şöyle bir senaryo yazalım.

Formda bir TabControl var, bu TAbControl’da üç Tab var, her Tab’da birer GroupBox var ve bu GroupBox’ların içlerinde nesneler var. Bu şekildeki bir form da kaç tane iç içe foreach döngüsü olmalıdır sizce? Ben söyliyeyim dört adet.

TabControl için bir tane

TabPage için bir tane

GroupBox için bir tane

Nesneler için bir tane

Görelim;

            foreach (Control item_1 in this.Controls) // From > TabControl
            {
                item_1.Font = new Font("Arial", 12); 
                if (item_1.Controls.Count > 0) 
                {
                    foreach (Control item_2 in item_1.Controls) // TabControl > TabPAge
                    {
                        item_2.Font = new Font("Arial", 11); 
                        if (item_2.Controls.Count > 0) 
                        {
                            foreach (Control item_3 in item_2.Controls) // TabPAge > GroupBox
                            {
                                item_3.Font = new Font("Arial", 10);
                                if (item_3.Controls.Count> 0)
                                {
                                    foreach (Control item_4 in item_3.Controls) // GroupBox > Nesneler
                                    {
                                        item_4.Font = new Font("Arial", 9);
                                    }
                                }
                            }
                        }
                    }
                }
            }

Örnekte de gördüğünüz gibi, iç içe tam dört tane foreach kullandık. Senaryomuza göre hangi foreach hangi nesneleri içereceğini biliyoruz. Ve dikkat ettiyseniz nesne sayıları ile hiç uğraşmadık. Saydığı nesneler kadar dönecek.

Önceki dersim olan C# Çok Boyutlu Diziler – En Ayrıntılı Anlatım dersimde diziler için nasıl kullandığımızı göstermiştim. Oradan kopyalamak istemediğim için ilgili dersin linkini bıraktım.

C# Foreach Break

Bazı durumlarda istediğimizi elde ettiğimizde döngüyü durdurmak isteyebiliriz. Bunun için;

            foreach (Control item_1 in this.Controls) // From > TabControl
            {
                // işlemler
                if (/* istediğimiz işlem yapıldı mı kontrolü*/) 
                {
                    // istediğimiz işlem yapıldığında Break komutu ile döngü sonlanacaktır.
                    break;
                }
            }

örnekte gördüğünüz gibi Break komutunu kullanırız. Break, kırmak anlamına gelir..


C# Foreach Döngüsü Kullanımı, konusu bu kadar arkadaşlar. Kısa ama güzel bir ders oldu. Umarım konuyu iyice anlamışsınızdır. Takıldığınız yerleri yorum atarak sorabilirsiniz. ;)

C Sharp Eğitim Seti ve ERP Programlama ders listesi için tıklayınız. 

Takipte ve sağlıcakla kalınız. ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)

Yorumlar (2)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.