Pergunta

Se eu estiver usando um ArrayList em C#.NET, a ordem é garantida para permanecer o mesmo que o pedido que adiciono itens a ele?

Foi útil?

Solução

Sim, os elementos são sempre adicionados ao final (a menos que você especifique o contrário, por exemplo, com uma chamada para Inserir). Em outras palavras, se você fizer:

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

A posição mudará se você remover quaisquer elementos anteriores ou inserir novos elementos à frente, é claro.

Existe algum bom motivo para você usar ArrayList ao invés de List<T> a propósito? Coleções não genéricas são assim 2003...

(O pedido é estável em List<T> A propósito, também.)

Outras dicas

Sim, é, a menos que uma parte do seu código altere o pedido por exemplo, trocando.

É sim. Já que é armazenado como uma matriz.

Outras propriedades são

  • Ordem garantida
  • Acesso aleatório. Você pode acessar qualquer elemento por índice em O (1)
  • Inserir lentamente e excluir no início e no meio.
  • Não triados. (A classificação deve levar o (n log n) usando o Quicksort ou similar)

Sim. [Limite de comprimento de resposta boba

Quando você adiciona um item a uma lista de Array, o item sempre permanece nesse índice. A menos que, é claro, se você mudar.

(A estrutura pode reorganizar a memória, mas seu índice sempre permanecerá o mesmo)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top