Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

foreach loop (Foreach başlığından yönlendirildi.)
Tüm Başlıklar XML

1.  for loopun sayı dizileri ile döndüğünü düşünürsek foreach loop nesne dizileri ile döner. verdiğimiz dizi içindeki (collection) tüm nesneler veya sadece belirlediğimiz class kadar döner.

syntax:
foreach([ClassAdı] ClassDeğişkeni in [DiziDeğişkeni]){
    //işlemler burada
}


Person class'ımız olsun ve PersonCollection class'ı da Person class'ının collection'u olsun.
içinde kaç tane Person olduğunu bilmediğimiz bir döngü aşağıdaki gibi olacaktır.


PersonCollection prsCollect = new PersonCollection();
// burada prsCollect'i doldurduk

foreach(Person prs in prsCollect){
    // prs değişkeni sıradaki Person class'inin instance'i
    // gerekli işlemler burada yapılacak.

    prs.DoSomething();
}


veya collection class'ımız object alsın ve eklenen nesne türü belirsiz olsun. foreach loop'ta ClassAdı'nı object vermediğimiz sürece istediğimiz class grubu için döngü sağlayabiliriz.


bateristt
15 Haziran 2005 10:19
2.  for loop'a göre performansı daha düşüktür. Performansın çok önemli olmadığı yerde for yerine foreach kullanılması daha güzeldir.
fizikci
15 Haziran 2005 10:29
3. 
foreach(AType ins in anIEnumerable)
{
   // vidi vidi vidi
}

şeklinde ifade etmek en doğrusudur. Yani foreach döngüsünün in kısmında bir IEnumerable olmalıdır. Aksi takdirde derleme zamanı hatası alırsınız.

Yukarıdaki foreach döngüsü açık olarak yazılırsa şuna karşılık gelir:
IEnumerator iterator = anIEnumerable.GetEnumerator();
iterator.Reset();

while(iterator.MoveNext())
{
   AType ins = (AType) iterator.Current();
   // vidi vidi vidi
}

İşte bu kadar kodu yazmamak için foreach kullanmak iyi olur.
fizikci
21 Kasım 2005 15:53
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.


Bu başlığa bkz veren girişlerin başlıkları nedir?

Bu başlığa bkz veren girişler başka hangi başlıklara bkz verdiler?
» .NET » hey » RemoveAll

© 2005, Bilişim Kulübü. (1109 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen