31

作成時に長さが不明な、上限が事前に決定されていない配列に保持されている文字列に最適なコンテナは何ですか。

次のような単純なコードの場合:

var list = new SomeContainer(); // size is unknown
for()/foreach()/do()/while() // any loop
{
  list.Add(string);
}

StringCollection文字列用に最適化されたコレクションですか、それとも単にまたはCollection<string>またはList<string>ですかArrayList? それらの違いは何ですか?

4

2 に答える 2

36

必要なものについてList<string>は、おそらく最も用途が広いです。StringCollection1.1 では、(ジェネリックなしで) 型付きコレクションに特定のクラスが必要な場合に便利でした。Collection<string>検証などを提供するためにサブクラス化する場合に便利です。

いずれにせよ、3.5 では、LINQ はそれらに多くの追加メソッドを提供しますが、LINQ がなければ、List<T>より多くの機能 ( FindSortなど)があります。

于 2009-03-21T10:51:13.430 に答える
15

AList<T>が最も効率的です。

クラスは別のタイプのリストのCollection<T>単なるラッパーであり、パラメーターなしのコンストラクターCollection<T>List<T>.

AnArrayListは本質的に a と同じなので、そこから読み取るときList<object>に項目を にキャストする必要があります。String

AStringCollectionは、 の型安全なラッパーですArrayList

于 2009-03-21T10:56:47.940 に答える