VuePressVuePress
Home
Get Started
Home
Get Started
  • Temel Kavramlar

    • Type Declarations (Tur Bildirimleri)
    • Access Modifiers (Erişim Değiştiricileri)
    • Erişimci (Accessor)
  • Metotlar ve İşlemler

    • Metotlar (Methods)
    • Geri Dönüş Türleri (Return Types)
    • Try-Catch Kullanımı
  • Veri Yapıları

    • Koleksiyon Arayüzleri (Collection Interfaces)
    • LINQ Sorguları
  • İleri Konular

    • Dependency Injection Servisleri
    • DbContext - OnModelCreating Metodu
  • DbContext ve Entity Framework

    • Entity Framework Core - Fluent API ve İlişkiler Rehberi

Koleksiyon Arayüzleri (Collection Interfaces)

Hiyerarşi

IEnumerable<T>
├── ICollection<T>
│   ├── IList<T>
│   ├── ISet<T>
│   └── IDictionary<TKey, TValue>
├── IQueryable<T>
├── IReadOnlyCollection<T>
│   ├── IReadOnlyList<T>
│   └── IReadOnlyDictionary<TKey, TValue>
└── IAsyncEnumerable<T>

IEnumerator<T> => Sadece veri okumak için kullanılır. Ekleme, silme, update işlemleri için uygun değildir.

IEnumerator<T>

Örnek:

IEnumerable&lt;int&gt; sayilar = new List&lt;int&gt; { 1, 2, 3, 4 };

foreach (var s in sayilar)
{
    Console.WriteLine(s);
}

ICollection<T>

Açıklama: Ekleme, silme, sayma işlemleri için kullanılır.

Örnek:

ICollection&lt;string&gt; isimler = new List&lt;string&gt;();
isimler.Add("Ali");
isimler.Add("Ayşe");

Console.WriteLine(isimler.Count); // 2
isimler.Remove("Ali");

IList<T>

Açıklama: İndeks üzeri erişim sağlar (myList[0] gibi).

Örnek:

IList&lt;string&gt; liste = new List&lt;string&gt; { "Elma", "Armut", "Kiraz" };
Console.WriteLine(liste[1]); // Armut
liste[1] = "Muz"; // Güncelleme

IReadOnlyCollection<T>

Açıklama: Set olması sadece get ile veri çekmek için uygun koleksiyondur.

Örnek:

public IReadOnlyCollection&lt;string&gt; GetCities()
{
    return new List&lt;string&gt; { "Ankara", "İzmir", "Bursa" };
}

IReadOnlyList<T>

Açıklama: Set olması sadece get ile veri çekmek ve indekli veri erişiminde kullanılır.

Örnek:

IReadOnlyList&lt;int&gt; sayilar = new List&lt;int&gt; { 10, 20, 30 };
Console.WriteLine(sayilar[2]); // 30

IQueryable<T>

Açıklama: Veritabanında LINQ sorguları yazıp veri tabanında çevirmek için kullanılır.

Örnek:

IQueryable&lt;User&gt; users = dbContext.Users.Where(u => u.Age > 18);

IDictionary<TKey, TValue>

Açıklama: Veriyi anahtar-değer (key-value) çifti şeklinde tutar.

Örnek:

IDictionary&lt;string, int&gt; notlar = new Dictionary&lt;string, int&gt;();
notlar["Ali"] = 85;
notlar["Ayşe"] = 90;
Console.WriteLine(notlar["Ayşe"]); // 90

IReadOnlyDictionary<TKey, TValue>

Açıklama: Dışarıya anahtar-değer verisini sadece çekilecek.

Örnek:

public IReadOnlyDictionary&lt;string, int&gt; GetScores()
{
    return new Dictionary&lt;string, int&gt; { ["Ali"] = 90, ["Ayşe"] = 85 };
}

ISet<T>

Açıklama: Tekrarlanan verileri saymadığı veriyi çeker.

Örnek:

ISet&lt;int&gt; sayilar = new HashSet&lt;int&gt; { 1, 2, 2, 3 };
Console.WriteLine(sayilar.Count); // 3 (çünkü 2 bir kez sayılır)

IAsyncEnumerable<T>

Açıklama: Asenkron şekilde verileri çeker. Ekleme, silme, güncelleme yapmaz.

Örnek:

await foreach (var item in GetDataAsync())
{
    Console.WriteLine(item);
}

async IAsyncEnumerable&lt;int&gt; GetDataAsync()
{
    for (int i = 1; i <= 3; i++)
    {
        await Task.Delay(500);
        yield return i;
    }
}

IObservable<T>

Açıklama: Bir tetikleyicinin tetiklendikten sonra yapılması gereken işleri sağlayan.

Örnek:

IObservable&lt;int&gt; numbers = Observable.Range(1, 5);
numbers.Subscribe(x => Console.WriteLine($"Alındı: {x}"));

IEnumerator<T>

Açıklama: foreach döngüsünün altında çalışan gezici (iterator) mantığı.

Last Updated:: 6/16/26, 10:38 PM
Contributors: yigitumretastan
Next
LINQ Sorguları