10

を継承したクラスを作りたいのですが、CollectionBaseLINQ拡張機能に対応していないようです!

まだサポートされていますか? または、代替ソリューションはありますか?

4

2 に答える 2

27

現在もサポートされていますが、廃止されています。System.Collections.Generic代わりに、またはSystem.Collections.ObjectModel名前空間で定義されたコレクションを常に使用することをお勧めします。

ジェネリック コレクションの 1 つから継承して、厳密に型指定された独自のカスタム コレクションを作成することもできます。また、LINQ は既に実装されているため、LINQ を完全にサポートしますIEnumerable<T>
あなたの場合には、 または のいずれList<T>Collection<T>が適切なオプションです。

CollectionBaseArrayList、 などの非ジェネリック コレクションはHashTableできるだけ避けてください。それらを使用するとパフォーマンスが低下し、最近のバージョンのフレームワークで導入された汎用バージョンよりも利点が (あるとしても!) 提供されません。

于 2011-04-18T15:00:58.223 に答える
4

Linq 拡張機能はIEnumerable<T>(ジェネリック) 向けに作成されており、CollectionBase (非ジェネリック) はそれを継承していません。そのため、Linq を使用できません。

System.Collections.ObjectModel.Collection<T>代わりに使用してください。

于 2011-04-18T15:01:27.037 に答える