web-dev-qa-db-ja.com

連続メモリを備えたC#ベクトルと同等のC#?

C++ベクトルに相当するC#とは何ですか?

この機能を探しています:

連続して保存されたメモリの動的な配列を持ち、アクセスと標準の配列のパフォーマンスを低下させないこと。

私は検索していて、彼らは.NET equivalent to the vector in C++ is the ArrayListと言っていたので:

ArrayListには連続したメモリ機能がありますか?

73
cMinor

List<T> を使用できます。Tが値型の場合、Tが参照型の場合はそうではない連続したメモリに割り当てられます。

例:

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

int someElement = integers[1];
89
Darin Dimitrov

List<T> を使用します。内部的には配列を使用し、配列は連続したメモリを使用します。

16
Bala R

まず、ArraylistまたはHashtableに近づかないでください。これらのクラスは、ジェネリックを優先して、非推奨と見なされます。それらはレガシー目的のためにまだ言語にあります。

今、あなたが探しているのはList<T>クラスです。 Tが値型である場合、連続したメモリがありますが、Tが参照型である場合は明らかな理由でないことに注意してください。

16
Matteo Mosca

C#には多くの参照型があります。コンテナがreferencesを連続して保存している場合でも、オブジェクト自体はヒープ全体に散在している可能性があります

13
Armen Tsirunyan
4
rjdevereux