5.00 / 1 oy

C# IEnumerable Nedir?

IEnumerable interface, C# programlama dilinde kullandığımız birçok koleksiyonun temel interface'i olduğu için anlaşılması önem taşıyan konulardan birisidir. Temel görevi ise, bir koleksiyonda yer alan elemanları yinelemektir (iteration). Bir koleksiyon sınıfına IEnumerable interface'i implement edildiğinde içerisindeki her bir eleman sayılabilir duruma gelir.

IEnumerable interface'inin iki versiyonu bulunmaktadır.

1. Generic sınıflar için IEnumerable <T>

2. Generic olmayan sınıflar için IEnumerable

Not: Generic olmayan sınıflar için IEnumerable kullanımında boxing/unboxing işlemleri verimliliği düşüreceği için yeni oluşturacağınız projelerinizde generic sınıflar için olan IEnumerable <T> interface'ini kullanmanızı tavsiye ederim.

Not 2: Koleksiyonlarda foreach döngüsünü (bkz: C# ile foreach döngüsü kullanımı ve örnekleri) kullanabilmemizi sağlayan implementation da IEnumerable implementation'udur.

 

C# IEnumerable Interface Örneği:

Araba.cs

class Araba
{
  public int MotorGucu { get; set; }
  public string Marka { get; set; }

   public Araba (int MotorGucu, string Marka)
   {
       this.MotorGucu = MotorGucu;
       this.Marka = Marka;
   }

}

 

OtoGaleri.cs

using System.Collections;
using System.Collections.Generic;

class OtoGaleri: IEnumerable<Araba>
{
    List<Araba> Arabalar;

    public OtoGaleri()
    {
        Arabalar = new List<Araba>() {
        new Araba (2000, "BMW 3.20"),
        new Araba (1400, "VolksWagen Jetta")};
    }

    IEnumerator<Araba> IEnumerable<Araba>.GetEnumerator()
    {
        return Arabalar.GetEnumerator();
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
        throw new System.NotImplementedException();
    }
}

 

Program.cs

class Program
{
    static void Main(string[] args)
    {
        OtoGaleri otogaleri = new OtoGaleri();

        foreach (Araba araba in otogaleri)
        {
            System.Console.WriteLine(araba.MotorGucu + "-" + araba.Marka);
        }
    }
}

 

Çıktı:

2000-BMW 3.20
1400-VolksWagen Jetta

 

Önceki bazı diğer benzer içerikli yazım için;

bkz: C# ve Generic ile Non-Generic Koleksiyonlar Nelerdir?

bkz: Interface Nedir?

bkz: C# Programlama Dilinde Koleksiyon Nedir?

bkz: C# ile params anahtar sözcüğü kullanımı ve örnekleri

bkz: C# Hashtable Kullanımı ve Örnekleri

bkz: C# Dictionary Nedir? Kullanımı ve Örnekleri

mbologlu

13.05.2021 00:06

Bu soru henüz yanıtlanmamış.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
 C# IEnumerable Nedir?

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.