列出数据结构C#效率

Ed *_*ers 5 .net c# generics

目前我正在使用一个List<short>缓冲区来保存一段时间,同时根据缓冲区中的其他值对每个值进行计算.然后我意识到这可能不是很有效,因为我被告知这List<>是一个链表,所以每次我做whatever = myList[100];穷人的事情就是必须先跳过所有其他节点才能得到我想要的值.我不想使用的规则阵列,因为我已经得到的负荷Add()Remove()在代码中的其他地方踢周围秒.所以我需要一个继承IList<T>但使用常规数组数据结构的类.有没有人知道.net中的一个类是这样工作的,所以我不必自己编写?我尝试使用ArrayList,但它'通用!

tva*_*son 9

List<T>不使用链表实现.在内部它使用一个数组,所以它看起来正是你需要的.请注意,因为它是一个数组,所以删除/插入可能是一个昂贵的操作,具体取决于列表的大小和被删除/插入的位置项 - O(n).但是,如果不了解更多关于如何使用它的信息,很难推荐更好的数据结构.

引用文档的备注部分.

List(T)类是ArrayList类的通用等价物.它使用一个数组实现IList(T)泛型接口,该数组的大小根据需要动态增加.


Dav*_*ale 1

不,aList<T>是通用集合,而不是链表。如果您需要添加和删除功能,那么这List<T>是大多数人默认的实现。