c#等价于c ++ vector或deque

我几乎可以肯定这应该是重复但我搜索了一段时间,但找不到答案。 我应该在C#中使用什么来有效地替换C ++ vector和deque。 也就是说,我需要一种能够高效地支持直接索引的结构,并且还支持以有效的方式从一端或两端(取决于向量或双端情况)删除。

在java中,我通常使用ArrayList至少用于向量,但对于C#,我发现这个源声明: ArrayList resizes dynamically. As elements are added, it grows in capacity to accommodate them. It is most often used in older C# programs. ArrayList resizes dynamically. As elements are added, it grows in capacity to accommodate them. It is most often used in older C# programs. 。 那么新的方法是什么? 再次,我该如何处理deque案件?

没有内置的Deque容器,但有几种可用的实现。

斯蒂芬克利里这是一个很好的 。 这提供了O(1)操作来索引,也可以在开头插入并在末尾追加。

与Vector相当的C#是List 。 索引访问是O(1),但插入或删除是O(N)(除了最后插入,即O(1))。

对于C# vector ,一个好的候选者是System.Collection.Generic.List正如其他人提到的那样。
C ++中最接近deque的是System.Collection.Generic.LinkedList ,它是一个双向链表。

考虑System.Collections.Generic.ListSystem.Collections.Generic.List其他C++ ,它们与C++等价物具有相同的用途。
此外,您可能还有更多容器。 看这里