Вопрос

Если я использую ArrayList в C#.NET, гарантируется ли, что порядок останется таким же, как порядок добавления в него элементов?

Это было полезно?

Решение

Да, элементы всегда добавляются в конец (если не указано иное, например, с помощью вызова Insert ). Другими словами, если вы делаете:

int size = list.Count;
int index = list.Add(element);
Assert.AreEqual(size, index); // Element is always added at the end
Assert.AreEqual(element, list[index]); // Returned index is position in list

Положение изменится, если вы, конечно, удалите какие-либо более ранние элементы или вставите новые элементы перед ним.

Есть ли для вас веская причина использовать ArrayList, а не List<T>? Неуниверсальные коллекции , поэтому 2003 ...

(Кстати, порядок в <=> также стабилен.)

Другие советы

Да, если какой-то фрагмент кода не изменяет порядок, например, обменивать.

Да, это так.Поскольку он хранится в виде массива.

Другими свойствами являются

  • Гарантированный заказ
  • Произвольный доступ.Вы можете получить доступ к любому элементу по индексу в O(1)
  • Медленно вставляйте и удаляйте в начале и середине.
  • Несортированный.(Сортировка должна занимать O (n log n) с использованием быстрой сортировки или аналогичной)

ДА.[ограничение на длину глупого ответа]

Когда вы добавляете элемент в ArrayList, он всегда будет оставаться с этим индексом. Если, конечно, если вы измените его.

(фреймворк может переставить память, но ваш индекс всегда останется прежним)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top