Различия между списком C # и массивом

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

Список, где параметр T - это тип элементов в списке. Некоторые особенности Списка приведены ниже:

Добавьте целочисленные значения в коллекцию List:

List intList = new List ();

intL) ist.Add (2);

intList.Add (3);

intList.Add (4);

Добавьте строковые значения в коллекцию List:

Цвета списка = новый список ();

colors.add («красный»);

colors.add («белый»);

colors.add («зеленый»);

Получить элементы из коллекции List с помощью цикла for:

foreach (цвет строки в цветах) (

MessageBox.Show (цвет)

)

В массиве хранится последовательная коллекция фиксированного размера элементов одного типа. Он используется для хранения коллекции данных, но массив можно рассматривать как коллекцию переменных одного типа, хранящихся в смежных местах памяти. Все массивы состоят из смежных областей памяти, причем самый низкий адрес соответствует первому элементу, а самый высокий адрес - последнему элементу.

Объявите массив в C #:

datatype () typeName; // DataType используется для указания типа элементов в массиве

Инициализация массива:

двойной () баланс = новый двойной (50);

Присвоение значений массиву:

double () остаток = (23, 0; 34, 56; 44, 32);

Доступ к элементам массива;

Foreach (значение int в балансе) (

Console.WriteLine («элемент:» + значение);

)

Создайте и инициализируйте массив одновременно:

Int () steps = new int (6) (1, 2, 3, 4, 5, 6);

Скопируйте переменную массива в другую целевую переменную массива:

Int () count = steps;

и цель, и источник указывают на одну и ту же область памяти

Сравнение лицом к лицу между C # List и Array Infographics

Ниже приведены 8 лучших отличий между C # List и Array.

Ключевые различия между C # List и Array

Обе версии C # List и Array являются популярным выбором на рынке; Давайте обсудим некоторые основные различия между C # List и Array:

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

Сравнение лицом к лицу между C # List и Array

Ниже приведено самое лучшее сравнение между C # List и Array.

Основа сравнения между C # List и ArrayСписокмассив
ТворчествоПостроен на вершине массиваИсходная структура данных, основанная на концепции индекса
ПамятьЗанимать больше памяти, чем массивПамять эффективных
длинаДлина варьируетсяДлина фиксированного размера
использованиеЧастые вставки и удаленияЧастый доступ к элементам
Изменение размераИзменение размера списка носит динамический характерИзменение размеров массивов стоит дорого
СтруктураНесмежная памятьНепрерывное расположение памяти
индексированиеНеиндексированная структураИндекс на основе самого низкого адреса в качестве первого и самого высокого адреса в качестве последнего
ДоступЭлемент доступа занимает много времени, хотя основывается на позиции элементаЭлемент доступа является постоянной функцией независимо от местоположения элемента.

Вывод - список C # против массива

Оба C # List vs Array являются разными типами, имеют разные возможности и хранят свои данные по-разному. Эти возможности хранения и дизайн структур данных C # List и Array делают их уникальными по-своему. Массив имеет фиксированный размер и после его выделения нельзя добавлять или удалять элементы из него, также все элементы должны быть одного типа. Таким образом, это типобезопасная и наиболее эффективная линейная структура данных с точки зрения скорости и производительности. Кроме того, массив поддерживает несколько измерений. Список предоставляет более общие возможности и получен из API-интерфейсов Collection. В отличие от Array, они динамичны по своей природе, могут изменять размеры автоматически при частой вставке и удалении элементов. По сути, это типобезопасная версия структуры данных ArrayList. Функция обеспечения безопасности типов означает, что не будет упаковок или распаковок, которые повысят производительность, и если кто-либо попытается добавить элемент неправильного типа, он выдаст ошибку во время компиляции.

C # List vs Array performance - это линейная структура данных, которая хорошо подходит для различных сценариев. Если происходят частые вставки и удаления, и в то же время память не является ограничением, то List является идеальным выбором, тогда как в сценариях, таких как частый доступ к элементам, требующим ограничения памяти, лучше использовать Array. Все зависит от варианта использования и требований. Массив всегда является списком по своей природе, но список не является массивом. Массив допускает оба вида доступа, прямой и последовательный, в то время как список разрешает только последовательный доступ. И это потому, что эти структуры данных хранятся в памяти. Поскольку List является производным от Collection, он может иметь различные реализации, одной из этих реализаций является ArrayList, который представляет собой класс, который реализует поведение List с использованием массивов в качестве структуры данных. Массив очень сильно связан с аппаратным понятием непрерывной непрерывной памяти, каждый элемент которого идентичен по размеру. Обе идеи C # List и Array соответствуют друг другу довольно хорошо, в зависимости от сценариев. В конце концов, все сводится к требованию, хотя часть памяти может быть в безопасности в современном мире, так как высокая память стала нормой.

Рекомендуемая статья

Это было руководство к основным различиям между C # List и Array. Здесь мы также обсудим различия между C # List и Array с помощью инфографики и таблицы сравнения. Вы также можете взглянуть на следующие статьи -

  1. Списки массивов и список Java - существенные различия
  2. Удивительное руководство по C против Java
  3. Java Vector и ArrayList
  4. C # против Js - удивительные различия
  5. C # Array vs List: различия
  6. Требовать против импорта: хотите знать преимущества
  7. C против C #: каковы лучшие различия
  8. C # против JavaScript: каковы особенности