A ordem de uma lista de Arraylist é garantida no C#.NET?
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?
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)