Sobes.tech
Junior

Тафовут байни ArrayList ва List дар C# чист?

sobes.tech AI

Ҷавоб аз AI

Маъзолоти байни ArrayList ва List дар C# зерин аст:

  • Типгузорӣ:

    • ArrayList элементҳоро бо типи object нигоҳ медорад (коллексияи беном), ки барои гирифтани элементҳо ниёз ба табдил додани тип ва кам кардани бехатарии тип дорад.
    • List<T> коллекияи умумӣ мебошад (T — типи муайян), ки элементҳоро бо қатъият аз типи муайян нигоҳ медорад, бехатарии типро таъмин мекунад ва ниёз ба табдил додани типро бартараф мекунад.
  • Кардани иҷроиш:

    • Илова ва гирифтани элементҳо дар ArrayList метавонад бо сабаби бастабандӣ (boxing) ва бозбастабандӣ (unboxing) барои типҳои арзишӣ сусттар бошад.
    • List<T> одатан тезтар аст, махсусан барои типҳои арзишӣ, зеро бастабандӣ/бозбастабандӣ вуҷуд надорад.
  • Бехатарии тип:

    • ArrayList метавонад элементҳои аз типҳои гуногун дошта бошад, ки метавонад дар вақти иҷроӣ хатогӣ орад.
    • List<T> бехатарии типро дар марҳилаи компилятсия таъмин мекунад.
  • Иҷроиш:

    • ArrayList дар фазои номи System.Collections ҷойгир аст.
    • List<T> дар фазои номи System.Collections.Generic ҷойгир аст.
  • Истифода:

    • ArrayList кӯҳна ҳисобида мешавад ва тавсия дода намешавад дар коди нав истифода шавад.
    • List<T> интихоби беҳтар барои бештари сенарияҳо мебошад.

Маслиҳат барои истифода:

// Истифодаи ArrayList
System.Collections.ArrayList arrayList = new System.Collections.ArrayList();
arrayList.Add(1);       // int ба object бастабандӣ мешавад
arrayList.Add("сатр"); // string ҳамчун object нигоҳ дошта мешавад

int рақам = (int)arrayList[0]; // Ниёз ба табдил додани тип

// Истифодаи List<T>
System.Collections.Generic.List<int> рӯйхат = new System.Collections.Generic.List<int>();
рӯйхат.Add(1); // Илова кардани int

// int рақам = рӯйхат[0]; // Ниёз ба табдил додани тип нест

Таблицаи муқоиса:

Хусусият ArrayList List<T>
Типгузорӣ Бе тип (object) Умумӣ (T)
Иҷроиш Мумкин бастабандӣ/бозбастабандӣ Беҳтар иҷроиш, бе бастабандӣ/бозбастабандӣ барои типҳои арзишӣ
Бехатарии тип Баланд нест Баланд (дар марҳилаи компилятсия)
Фазои номи System.Collections System.Collections.Generic
Тавсия Тавсия дода намешавад Тавсия дода мешавад