繁体   English   中英

CollectionBase类仍然受支持吗?

[英]Is the CollectionBase class still supported?

我想创建一个继承自CollectionBase的类,但它似乎不支持LINQ扩展!

它仍然受支持吗? 或者有替代解决方案吗?

它仍然受支持 ,但它已经过时了。 您应该始终更喜欢使用System.Collections.GenericSystem.Collections.ObjectModel命名空间中定义的集合。

您可以继承其中一个泛型集合,以创建自己的自定义强类型集合。 它将完全支持LINQ,因为它们已经实现了IEnumerable<T>
List<T>Collection<T>都是适合您案例的好选择。

尽可能避免使用CollectionBaseArrayListHashTable等非泛型集合。 使用它们会有性能损失,并且它们与最新版本的框架中引入的通用版本相比,几乎没有优势(如果有的话!)。

Linq扩展是为IEnumerable<T> (Generic) 编写的,CollectionBase (非泛型)不是从它继承的。 这就是为什么你不能使用Linq的原因。

请改用System.Collections.ObjectModel.Collection<T>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM