Sobes.tech
Junior

C#'ta ArrayList ile List arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

C# dilinde ArrayList ve List arasındaki farklar şunlardır:

  • Tip belirleme:

    • ArrayList, object türünde öğeler saklar (tip belirlenmemiş koleksiyon), bu da öğeleri çekerken tür dönüşümüne ihtiyaç duyar ve tür güvenliğini azaltır.
    • List<T>, belirli bir türde öğeler saklayan genel (generic) bir koleksiyondur (T — belirli bir tür), öğeleri sıkı şekilde belirlenmiş türde tutar, tür güvenliğini sağlar ve tür dönüşümüne gerek kalmaz.
  • Performans:

    • ArrayList'e öğe ekleme ve çıkarma işlemleri, boxing ve unboxing işlemleri nedeniyle daha yavaş olabilir.
    • List<T> genellikle daha hızlıdır, özellikle değer türleri için, çünkü boxing/unboxing işlemi yoktur.
  • Tür güvenliği:

    • ArrayList, farklı türlerde öğeler içerebilir, bu da çalışma zamanında hatalara yol açabilir.
    • List<T>, derleme zamanında tür güvenliği sağlar.
  • Uygulama:

    • ArrayList, eski kabul edilir ve yeni kodda kullanılmaması önerilir.
    • List<T>, çoğu senaryo için tercih edilen seçenektir.

Örnek kullanım:

// ArrayList kullanımı
System.Collections.ArrayList arrayList = new System.Collections.ArrayList();
arrayList.Add(1);       // int, object'e paketlenir
arrayList.Add("dize"); // string, object olarak saklanır

int sayi = (int)arrayList[0]; // Tür dönüşümü gerekir

// List<T> kullanımı
System.Collections.Generic.List<int> list = new System.Collections.Generic.List<int>();
list.Add(1); // int eklenir

// int sayi = list[0]; // Tür dönüşümüne gerek yok

Karşılaştırma tablosu:

Özellik ArrayList List<T>
Tip belirleme Tip belirlenmemiş (object) Genel (T)
Performans Boxing/unboxing olabilir Daha yüksek, boxing/unboxing gerekmez
Tür güvenliği Düşük Yüksek (derleme zamanında)
İsim alanı System.Collections System.Collections.Generic
Tavsiye Tavsiye edilmez Tavsiye edilir