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 |
| Тавсия | Тавсия дода намешавад | Тавсия дода мешавад |