Sobes.tech
Junior

C# da ArrayList va List o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

C# tilida ArrayList va List o'rtasidagi farqlar quyidagicha:

  • Tiplash:

    • ArrayList object turidagi elementlarni saqlaydi (tiplanmagan kolleksiya), bu elementlarni chiqarib olishda tur konvertatsiyasini talab qiladi va tur xavfsizligini kamaytiradi.
    • List<T> — umumiy kolleksiya (T — belgilangan tur), u aniq belgilangan turdagi elementlarni saqlaydi, tur xavfsizligini ta'minlaydi va tur konvertatsiyasini olib tashlaydi.
  • Performans:

    • ArrayList ga element qo'shish va chiqarib olish sekinroq bo'lishi mumkin, chunki boxing va unboxing jarayonlari talab qilinadi.
    • List<T> odatda tezroq, ayniqsa qiymat turlari uchun, chunki boxing/unboxing yo'q.
  • Tur xavfsizligi:

    • ArrayList turli turlardagi elementlarni saqlashi mumkin, bu esa ish vaqtida xatolarga olib kelishi mumkin.
    • List<T> kompilatsiya vaqtida tur xavfsizligini ta'minlaydi.
  • Implementatsiya:

    • ArrayList System.Collections nom space ichida joylashgan.
    • List<T> System.Collections.Generic nom space ichida joylashgan.
  • Foydalanish:

    • ArrayList eskirgan va yangi kodda foydalanish tavsiya etilmaydi.
    • List<T> ko'p holatlarda afzal ko'riladi.

Misol:

// ArrayList dan foydalanish
System.Collections.ArrayList arrayList = new System.Collections.ArrayList();
arrayList.Add(1);       // int object ga paketlanadi
arrayList.Add("matn"); // string object sifatida saqlanadi

int raqam = (int)arrayList[0]; // tur konvertatsiyasi talab qilinadi

// List<T> dan foydalanish
System.Collections.Generic.List<int> ro'yxat = new System.Collections.Generic.List<int>();
ro'yxat.Add(1); // int qo'shiladi

// int raqam = ro'yxat[0]; // tur konvertatsiyasi talab qilinmaydi

Taqqoslash jadvali:

Xususiyat ArrayList List<T>
Tiplash Tiplanmagan (object) Umumiy (T)
Performans Boxing/unboxing mumkin Yuqori, boxing/unboxing yo'q
Tur xavfsizligi Past Yuqori (kompilatsiya vaqtida)
Nomi bo'sh joy System.Collections System.Collections.Generic
Tavsiya Tavsiya etilmaydi Tavsiya etiladi