在C#.NET中是否保证了arraylist的顺序?

时间:2008-11-26 15:27:49

标签: c# .net arraylist

如果我在C#.NET中使用ArrayList,订单是否保证与我向其添加项目的顺序保持一致?

5 个答案:

答案 0 :(得分:39)

是的,元素总是添加到最后(除非您另行指定,例如通过调用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>?非泛型集合 so 2003 ...

(顺便说一句,顺序在List<T>也是稳定的。)

答案 1 :(得分:6)

是的,除非您的某些代码更改了订单,例如交换。

答案 2 :(得分:4)

是的。因为它存储为数组。

其他属性

  • 保证订单
  • 随机访问。您可以在O(1)
  • 中按索引访问任何元素
  • 在开头和中间缓慢插入和删除。
  • 未排序。 (排序应使用快速排序或类似的O(n log n))

答案 3 :(得分:2)

是。 [傻回答长度限制]

答案 4 :(得分:0)

当您将项目添加到ArrayList时,该项目将始终保留在该索引处。当然,除非你改变它。

(框架可能会重新安排内存,但您的索引将始终保持不变)