Chr*_*sCa 24 .net c# linq ienumerable ienumerator
我正在使用Aspose单元来操作Excel电子表格.API中的一种类型是电子表格中的图片集合,它源自CollectionBase:
请看这个链接:http: //www.aspose.com/documentation/.net-components/aspose.cells-for-.net/aspose.cells.pictures.html
我想将此类型转换为允许我使用Linq表达式的东西
有什么选择?
我想我可以迭代它并手动添加到a new List<Picture>
但是有更好的方法吗?
我已经读过这个问题 将IEnumerable <T>添加到派生自CollectionBase的类中
但我显然无法控制实现CollectionBace的类,因为它是第三方产品
Jon*_*eet 57
只需Enumerable.Cast<T>()
在非泛型IEnumerable
接口上使用扩展方法,您可以在查询表达式中隐式执行:
var query = from Picture picture in pictures
where ...
select ...;
Run Code Online (Sandbox Code Playgroud)
或明确地,例如,如果您想使用点表示法:
var query = pictures.Cast<Picture>()
.Where(...)
.Select(...);
Run Code Online (Sandbox Code Playgroud)
替代Cast<T>()
是OfType<T>()
- 它基本上忽略了任何不正确类型的元素.在这种情况下,我认为Cast<T>()
更合适.
如果你想将整个系列转换List<T>
为无论什么原因,那也很容易:
List<Picture> list = pictures.Cast<Picture>().ToList();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12757 次 |
最近记录: |