Відмінності між списком C # і масивом

Клас списку C # являє собою сильно типізований список об'єктів, до яких можна отримати доступ за допомогою індексу, і він підтримує збереження значень певного типу без кастингу на об'єкт або з нього.

Список, де параметром T є тип елементів у Списку. Деякі особливості Списку наведені нижче:

Додайте цілі значення в колекцію списку:

Список intList = новий Список ();

intL) ist.Add (2);

intList.Add (3);

intList.Add (4);

Додати значення рядків у колекцію списку:

Кольори списку = новий Список ();

color.add ("червоний");

color.add ("білий");

color.add ("зелений");

Отримайте елементи з колекції списку, використовуючи цикл:

foreach (колір рядка в кольорах) (

MessageBox.Show (кольоровий)

)

Масив зберігає послідовну колекцію елементів одного типу з фіксованим розміром. Він використовується для зберігання колекції даних, але масив може розглядатися як набір однотипних змінних, що зберігаються в суміжних місцях пам'яті. Усі масиви складаються з суміжних місць пам'яті, при цьому найнижча адреса відповідає першому елементу, а найвища - останньому.

Оголосити масив у C #:

тип даних () typeName; // DataType використовується для визначення типу елементів у масиві

Ініціалізація масиву:

подвійний () баланс = новий подвійний (50);

Присвоєння значень масиву:

подвійний () баланс = (23.0, 34.56, 44.32);

Доступ до елементів масиву;

Foreach (значення int у балансі) (

Console.WriteLine ("елемент є:" + значення);

)

Одночасно створюйте та ініціалізуйте масив:

Int () кроки = new int (6) (1, 2, 3, 4, 5, 6);

Скопіюйте змінну масиву в іншу змінну цільового масиву:

Int () count = кроки;

і цільовий, і вихідний вказують на одне і те ж місце пам'яті

Порівняння між голосами та інфографікою масиву C #

Нижче наведено 8 найкращих відмінностей між C # List і Array

Ключові відмінності між списком C # та масивом

Обидві продукти C # List і Array - це популярний вибір на ринку; Давайте обговоримо деякі основні відмінності між списком C # і масивом:

  1. Список побудований у верхній частині масиву, тоді як Array - структура даних нижчого рівня.
  2. Список постачається у вигляді API в C # з батьківським класом Collection, тоді як Array - це структура даних нижнього рівня зі своїми специфічними властивостями.
  3. Список не заснований на індексах, заснований на концепції вузлів, тоді як масиви - це структури даних на основі індексу, найнижча адреса надається першому елементу, а найвища адреса - останньому елементу в масиві.
  4. Список динамічний за своєю суттю, тобто їх розмір автоматично збільшується із збільшенням розміщення елементів, тоді як масиви мають структуру фіксованого розміру, коли ініціалізацію неможливо скинути.
  5. Список краще для частого вставки та видалення, тоді як масиви набагато краще підходять для частого доступу до сценарію елементів.
  6. Список займає набагато більше пам’яті, оскільки кожен визначений вузол Список має власний набір пам’яті, тоді як масиви - це структура даних, що ефективно працює з пам’яттю.
  7. Список отриманий із колекції, яка містить більш загальний тип даних, тоді як масив фіксований і зберігає більш сильний тип даних.
  8. У списку містяться вузли, які мають місця в пам'яті, не слід мати суміжний характер, тоді як масив містить елементи з розташуванням їх пам'яті, які є суміжними за своєю природою.
  9. Неспрямоване властивість List змушує їх зайняти більше часу в доступі до елементів, тоді як суміжне властивість Array робить їх високоефективними для доступу до елементів.
  10. Перелічіть загальні джерела використання, це, в основному, безпечна версія ArrayList, і генерувати помилку під час компіляції, тоді як масиви зі своєю безпекою для типу, високоефективними з точки зору швидкості та продуктивності, підтримують різні виміри.

Порівняння голову до голови між списком C # проти масиву

Нижче наведено найвище порівняння між C # List і Array

Основи порівняння між списком C # і масивомСписокМасив
СтворенняПобудований на вершині масивуОригінальна структура даних, заснована на концепції індексу
Пам'ятьЗаймайте більше пам'яті, ніж ArrayЕфективна пам'ять
ДовжинаДовжина варіюєтьсяФіксований розмір довжини
ВикористанняЧасте вставлення та видаленняЧастий доступ до елементів
Змініть розмірСписок змін - динамічний характерЗмінення розмірів масивів коштує дорого
БудоваНепомітна пам'ятьСуміжне місце пам'яті
ІндексаціяНеіндексна структураІндекс на основі найнижчої адреси як першої та найвищої адреси як останньої
ДоступЕлемент доступу забирає багато часу, хоча заснований на позиції елементаЕлемент доступу - це постійна робота часу, незалежно від місця розташування елемента

Висновок - C # Список проти масиву

Обидва C # List проти масиву - це різні типи, що мають різні можливості та зберігають свої дані окремо. Ця можливість зберігання та дизайн обох структур даних C # List та Array робить їх унікальними по-своєму. Масив має фіксований розмір, і як тільки він виділяється, з нього не можна додавати або видаляти елементи, також всі елементи повинні бути одного типу. Таким чином, це безпечна і найбільш ефективна лінійна структура даних з точки зору швидкості та продуктивності. Також Array підтримує кілька вимірів. У цьому списку представлені більш загальні можливості та отримані з колекційних API. На відміну від Array, вони динамічні за своєю суттю, можуть змінювати розмір автоматично при частому введенні та видаленні елементів. По суті це безпечна для версії структура даних ArrayList. Функція безпеки типу означає, що немає боксу або розпакування, які б підвищили продуктивність, і якщо хтось спробує додати елемент неправильного типу, він створить помилку під час компіляції.

Виконання списку C # проти масиву - це лінійна структура даних, яка добре підходить для різних сценаріїв. Якщо трапляються часті вставки та видалення і в той же час пам'ять не є обмеженням, тоді List є ідеальним вибором, тоді як у таких сценаріях, як частий доступ до необхідних елементів з обмеженням пам'яті, тоді Array є кращим варіантом. Все залежить від випадку використання та вимоги. Масив - це завжди список у природі, але список - це не масив. Масив дозволяє обидва типи доступу, прямий та послідовний, тоді як Список дозволяє лише послідовний доступ. І це тому, що спосіб зберігання даних структур зберігається в пам'яті. Оскільки List є похідним від Collection, він може відрізнятися реалізацією, однією з таких реалізацій є ArrayList, який є класом, який реалізує поведінку списку, використовуючи масиви як структуру даних. Масив дуже сильно пов'язаний з апаратним поняттям безперервної, суміжної пам'яті, кожен елемент однаковий за розміром. Обидві ідеї щодо продуктивності C # List та Array вирівнюються досить добре на основі сценаріїв. Врешті-решт все це зводиться до вимоги, хоча частина пам'яті може бути безпечно бічною лінією в сучасному світі, оскільки висока пам'ять стала нормою.

Рекомендована стаття

Це було керівництвом щодо найкращих відмінностей між списком C # проти масиву. Тут ми також обговорюємо розбіжності ключових списків C # проти масиву з інфографікою та таблицею порівняння. Ви також можете переглянути наступні статті -

  1. Списки масивів проти списку Java - цінні відмінності
  2. Дивовижне керівництво по C проти Java
  3. Java-вектор та ArrayList
  4. C # vs Js - дивовижні відмінності
  5. C # масив проти списку: відмінності
  6. Потрібно проти імпорту: Хочете знати переваги
  7. C проти C #: Які найкращі відмінності
  8. C # vs JavaScript: Які функції