将CollectionBase转换为可与Linq一起使用的List或数据类型
我正在使用Aspose单元来操作Excel电子表格。 API中的一种类型是电子表格中的图片集合,它源自CollectionBase:
请看这个链接: http : //www.aspose.com/documentation/.net-components/aspose.cells-for-.net/aspose.cells.pictures.html
我想将此类型转换为允许我使用Linq表达式的东西
有什么选择?
我想我可以迭代它并手动将其添加到new List
但是有更好的方法吗?
我已经读过这个问题将IEnumerable 添加到派生自CollectionBase的类中
但我显然无法控制实现CollectionBace的类,因为它是第三方产品
只需在非通用IEnumerable
接口上使用Enumerable.Cast
扩展方法,您可以在查询表达式中隐式执行此操作:
var query = from Picture picture in pictures where ... select ...;
或明确地,例如,如果您想使用点表示法:
var query = pictures.Cast
Cast
的替代方法是OfType
– 它基本上忽略了任何不正确类型的元素。 在这种情况下,我认为Cast
更合适。
如果您想将整个集合转换为List
,无论出于何种原因,这也很容易:
List