Гарантирован ли порядок arrayylist в C# .NET?

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
19
0
9 354
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

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

Ответ принят как подходящий

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

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 ...

(Кстати, порядок стабильный и в List<T>.)

«Неуниверсальные коллекции такие 2003 ...» - LOL, милый Джон, это моя цитата недели :)

Doctor Jones 26.11.2008 19:57

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

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

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

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

Другие свойства

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

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