を継承したクラスを作りたいのですが、CollectionBase
LINQ拡張機能に対応していないようです!
まだサポートされていますか? または、代替ソリューションはありますか?
を継承したクラスを作りたいのですが、CollectionBase
LINQ拡張機能に対応していないようです!
まだサポートされていますか? または、代替ソリューションはありますか?
現在もサポートされていますが、廃止されています。System.Collections.Generic
代わりに、またはSystem.Collections.ObjectModel
名前空間で定義されたコレクションを常に使用することをお勧めします。
ジェネリック コレクションの 1 つから継承して、厳密に型指定された独自のカスタム コレクションを作成することもできます。また、LINQ は既に実装されているため、LINQ を完全にサポートしますIEnumerable<T>
。
あなたの場合には、 または のいずれList<T>
かCollection<T>
が適切なオプションです。
CollectionBase
、ArrayList
、 などの非ジェネリック コレクションはHashTable
できるだけ避けてください。それらを使用するとパフォーマンスが低下し、最近のバージョンのフレームワークで導入された汎用バージョンよりも利点が (あるとしても!) 提供されません。
Linq 拡張機能はIEnumerable<T>
(ジェネリック) 向けに作成されており、CollectionBase (非ジェネリック) はそれを継承していません。そのため、Linq を使用できません。
System.Collections.ObjectModel.Collection<T>
代わりに使用してください。