C#相当于C ++vector,具有连续内存?

C ++相当于C ++vector的是什么?

我正在寻找这个function:

要有一个连续存储的内存dynamic数组,没有访问与标准数组的性能损失。

我正在search,他们说.NET equivalent to the vector in C++ is the ArrayList ,所以:

ArrayList是否具有连续的内存function?

你可以使用List<T> ,当T是一个值types时,它将被分配在连续的内存中,如果T是一个引用types,情况就不会如此。

例:

 List<int> integers = new List<int>(); integers.Add(1); integers.Add(4); integers.Add(7); int someElement = integers[1]; 

使用List<T> 。 在内部它使用数组和数组确实使用连续的内存。

C#有很多引用types。 即使一个容器连续地存储了引用 ,这些对象本身也可能散布在堆中

首先,远离ArraylistHashtable 。 这些类别将被视为不赞成使用generics。 它们仍然是为了传统目的而使用的语言。

现在,你要找的是List<T>类。 请注意,如果T是一个值types,您将具有连续内存,但是,如果T是引用types,则不会显而易见。