如果我在 C#.NET 中使用 ArrayList,是否保证顺序与我添加项目的顺序相同?
adambox
问问题
9622 次
5 回答
40
是的,元素总是被添加到末尾(除非您另外指定,例如调用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>
顺便说一句?非通用集合是如此2003...
(顺便说一下,订单也很稳定List<T>
。)
于 2008-11-26T15:29:47.647 回答
6
是的,除非您的某些代码通过交换等方式更改了顺序。
于 2008-11-26T15:29:40.550 回答
4
是的。因为它存储为数组。
其他属性是
- 保证订单
- 随机访问。您可以通过 O(1) 中的索引访问任何元素
- 在开头和中间缓慢插入和删除。
- 未分类。(使用快速排序或类似的排序应该花费 O(n log n))
于 2008-11-26T15:32:16.363 回答
2
是的。[傻回答长度限制]
于 2008-11-26T15:29:54.387 回答
0
当您将项目添加到 ArrayList 时,该项目将始终保留在该索引处。当然,除非你改变它。
(框架可能会重新排列内存,但您的索引将始终保持不变)
于 2008-11-26T15:30:47.507 回答