web-dev-qa-db-ja.com

c#いつListを使用し、いつarraylistを使用する必要がありますか?

タイトルにあるように、いつListを使用すべきか、いつArrayListを使用すべきか?

ありがとう

45
Scott

ArrayListを使用する主な時期は.NET 1.1です

それ以外、 List<T>ずっと(ローカルTの場合)...

型が事前にわからない(そしてジェネリックを使用できない)(まれな)場合は、List<object>ArrayList(IMO)よりも役立ちます。

87
Marc Gravell

常にList<TypeOfChoice>(.NET 2.0とジェネリックで導入)はTypeSafeであり、ArrayListより高速であるため(不要なボックス化/ボックス化解除なし)。

古いもの(.NET 1.1)とやり取りする必要がある場合、または異なるタイプのオブジェクトの配列が必要で、すべてをオブジェクトとしてロードする場合にのみ、ArrayListが便利であると考えることができますが、後者を実行できます。 List<Object>これは一般的に優れています。

12
JohnIdol

Listはジェネリッククラスであるため、常にListを使用する傾向があります。

ArrayListは.NET 1.xクラス(まだ利用可能で有効です)ですが、「型付き」/汎用ではないため、「オブジェクト」から目的の型にアイテムをキャストする必要があります。一方、Listを使用する場合は、その必要はありません。

5

可能な限りリストを使用してください。パフォーマンスの高いリストが存在する場合、ArrayListの用途がわかりません。

4
Niran

ArrayListは古い.NETデータ構造です。 .NET 2.0以降を使用している場合、配列が同じタイプのアイテムを保持する必要がある場合は、常にListを使用してください。 ArrayListではなくListを使用すると、パフォーマンスと使いやすさが向上します。

3
blitzkriegz

ジェネリックは.Net 2.0で導入されました。以前のバージョンの.Netを使用している場合は、配列リストを使用できます。それ以外の場合は、ジェネリックリスト自体を使用できます。配列リストは非推奨であり、型の安全性が向上せず、ボックス化とボックス化解除の問題も発生しますが、一般的なリストはそうではありません。

0
kuttychutty

Linqクエリを使用したくない場合は、リストを使用する必要はありません。使用したい場合は、リストを優先する必要があります。

0
VIRA

他の人が言ったように。ジェネリックリストを使用する必要があります。ほとんどの場合、型(C#は厳密に型指定された言語です)がわかっている場合、およびその他の方法で、ポリモーフィック/継承クラスなどを使用する必要があります。

0
Timotei