2015-10-29 49 views
3

从我读过的内容来看,列表,排序列表和数组列表有很多共同之处,但同时也有一些差异。列表,排序列表和数组列表之间有什么区别? (c#)

我想知道:初学者应该知道他们之间有什么区别?为什么选择一个在另一个之上?在代码中使用它们时有什么好习惯?

谢谢你的时间。

+4

试着读一些书。作为示例 - c#深入https://www.manning.com/books/c-sharp-in-depth-third-edition –

回答

1

带有列表< T>和SortedList < T>您可以指定元素的类型,因此通常更易于使用。 ArrayList是遗留的,并保存对象,但您必须将它们自己转换为包含的类型。

SortedList < T>顾名思义就是一个排序列表类型T.当你想要一个排序列表时使用它。使用清单< T>当排序的排序是不必要的,或者当T的一般集合足够时,或者您提供您自己的排序机制时。 SortedList < T>在添加项目时会更慢,然后列出< T>,所以只有在必要时才使用它。

5

从MSDN:

甲排序列表元件可以通过它的键来访问,如在 元素的任何IDictionary的实施方式中,或者由它的索引,就像在任何 IList实现的元件。

SortedList对象在内部维护两个数组以存储列表的 元素;也就是说,一个数组的键和另一个 阵列的关联值。每个元素都是可以作为DictionaryEntry对象访问的键/值对 。一个密钥不能为空,但一个值可以是 。

同样为了选择最好的收藏,你可以看到this

enter image description here

+0

如何写一个列表O(n),当它在内部使用数组?我想这是最坏的情况,当它不得不调整阵列..? – Rob

相关问题