Junior
C#-də ArrayList və List arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
C# dilində ArrayList və List arasındakı fərqlər aşağıdakılardır:
-
Tip təyini:
ArrayListelementləriobjecttipində saxlayır (tip təyin olunmamış kolleksiya), bu da elementləri çıxararkən tip çevirməsini tələb edir və tip təhlükəsizliyini azaldır.List<T>ümumi kolleksiyadır (T— müəyyən edilmiş tip), müəyyən bir tipdə elementləri saxlayır, tip təhlükəsizliyini təmin edir və tip çevirməsinə ehtiyac qalmır.
-
Performans:
ArrayList-ə element əlavə etmək və çıxarmaq daha yavaş ola bilər, çünki boxing və unboxing əməliyyatları tələb olunur.List<T>ümumiyyətlə daha sürətlidir, xüsusən də qiymət tipləri üçün, çünki boxing/unboxing yoxdur.
-
Tip təhlükəsizliyi:
ArrayListmüxtəlif tiplərdə elementlər saxlaya bilər, bu da işləmə zamanı səhvlərə səbəb ola bilər.List<T>isə tiplərin təhlükəsizliyini tərtib zamanı təmin edir.
-
İcra:
ArrayListSystem.Collectionsad məkanında yerləşir.List<T>isəSystem.Collections.Genericad məkanında yerləşir.
-
İstifadə:
ArrayListköhnə sayılır və yeni kodda istifadə olunması tövsiyə edilmir.List<T>isə əksər ssenarilər üçün üstün seçimdir.
İstifadə nümunəsi:
// ArrayList istifadə
System.Collections.ArrayList arrayList = new System.Collections.ArrayList();
arrayList.Add(1); // int object-ə paketlənir
arrayList.Add("sətir"); // string object kimi saxlanılır
int rəqəm = (int)arrayList[0]; // Tip çevirmə tələb olunur
// List<T> istifadə
System.Collections.Generic.List<int> siyahı = new System.Collections.Generic.List<int>();
siyahı.Add(1); // int əlavə edir
// int rəqəm = siyahı[0]; // Tip çevirməyə ehtiyac yoxdur
Müqayisə cədvəli:
| Xüsusiyyət | ArrayList | List<T> |
|---|---|---|
| Tip təyini | Təyin olunmayıb (object) | Ümumi (T) |
| Performans | Boxing/unboxing mümkündür | Daha yüksək, boxing/unboxing olmadan |
| Tip təhlükəsizliyi | Aşağı | Yüksək (tərtib zamanı) |
| Naviqasiya sahəsi | System.Collections | System.Collections.Generic |
| Tövsiyə | Tövsiyə edilmir | Tövsiyə olunur |