Гарантируется ли порядок arraylist в C#.NET?
Вопрос
Если я использую 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, он всегда будет оставаться с этим индексом. Если, конечно, если вы измените его.
(фреймворк может переставить память, но ваш индекс всегда останется прежним)