質問

見たことの回答からジョンに 初期化汎用オブジェクトタイプ不明:

したい場合は単一のコレクション 複数の関係のない種類の 値として使用 List<object>

いとの比較 ArrayList vs List<>, ものの、 ArrayList vs List<object>, とすることに触要素のタイプ object.という量そのもののいずれかかるでしょうか?

編集:この懸念があるタイプの安全ての両方のクラスは露 object しています。一つでもニーズをキャストから object 希望のタイプです。希望以外のものタイプ。

編集:コマGravell、ショーンのための答えになります。まで送迎を1として回答いままでに投票します。

役に立ちましたか?

解決

あなたはList<object> / ArrayListCast<object>()OfType<object>のおかげで)注入していない限り、IEnumerable<object>ではなく、IEnumerableと直接LINQの拡張メソッドを使用することができます。それはあなたが型の安全性などを必要としない場合でも、かなりの価値がある。

速度はほぼ同じになります。構造体は、まだなど、箱詰めされます - ので、それらを区別するために他の多くはありません。私のようにArrayListを見る傾向があることを除いて「おっと、誰かが再びレガシーコードを書いている...」;-p

他のヒント

List<object>を使用する1つの大きな利点は、これらの日、ほとんどのコードは、ジェネリッククラス/インタフェースを使用するように書かれていることです。私は、これらの日、ほとんどの人が代わりにIList<object>IListをとるメソッドを書くだろうと思います。 ArrayListIList<object>を実装していないので、あなたは、これらのシナリオで配列リストを使用することができません。

私は、レガシーコードのような非ジェネリッククラス/インタフェースを考えると、可能な限りそれらを避ける傾向にある。

この場合、ArrayListList<Object>あなたはスピードの違いに気付くことはありません。そこ.NET 3.5で特定のこれらのそれぞれで使用可能な実際の方法にいくつかの違い、可能と拡張メソッドを数えるが、それはArrayListのが何よりもやや廃止さで行うことがより多くを持っているかもしれません。

あり、その他にもtypesafeクセスフル-エイジングレが実際になります。

らにMSDN(http://msdn.microsoft.com/en-us/library/system.collections.generic.aspx)

システム。ョンにします。汎用 名前空間を含むインターフェイス クラス定義の一般 コレクション、ユーザに提供する を強く型付けされたコレクション より安全タイプ 業績以外の汎用く 入力ョンにします。

いくつかのベンチマークを行うと、あなたが一番行って何を知っています。私は差が非常に小さいことguestimate。

リスト<>はArrayListのの型保証されたバージョンです。それはあなたがコレクション内の同じオブジェクトの型を取得することを保証します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top