我想创建一个继承自 的类CollectionBase,但它似乎不支持 LINQ 扩展!
它仍然支持吗?还是有替代解决方案?
它仍然受支持,但已过时。相反,您应该始终更喜欢使用在System.Collections.Generic或System.Collections.ObjectModel命名空间中定义的集合。
您也可以从通用集合之一继承来创建您自己的自定义强类型集合。并且它将完全支持 LINQ,因为它们已经实现了IEnumerable<T>.
要么 要么List<T>是Collection<T>您的案例的好选择。
尽可能避免使用非泛型集合,如CollectionBase、ArrayList和HashTable。使用它们会降低性能,并且与框架的最新版本中引入的通用版本相比,它们几乎没有优势(如果有的话!)。
Linq 扩展是为IEnumerable<T>(Generic) 编写的,而CollectionBase (Non-generic) 不会继承自它。这就是为什么你不能在上面使用 Linq。