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,objecttü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 |