【发布时间】:2010-09-24 04:19:57
【问题描述】:
如果我在 C#.NET 中使用 ArrayList,是否保证顺序与我添加项目的顺序相同?
【问题讨论】:
如果我在 C#.NET 中使用 ArrayList,是否保证顺序与我添加项目的顺序相同?
【问题讨论】:
是的,元素总是添加到末尾(除非您另外指定,例如调用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>的订单也很稳定。)
【讨论】:
是的,除非您的某些代码更改了顺序,例如交换。
【讨论】:
是的。因为它是作为数组存储的。
其他属性是
【讨论】:
是的。 [愚蠢的答案长度限制]
【讨论】:
当您向 ArrayList 添加项目时,该项目将始终停留在该索引处。当然,除非你改变它。
(框架可能会重新排列内存,但您的索引将始终保持不变)
【讨论】: