I am using Aspose cells to manipulate Excel spreadsheets. One of the types in the API is a collection of Pictures in the spreadsheet, which derives from CollectionBase:
see this link: http://www.aspose.com/documentation/.net-components/aspose.cells-for-.net/aspose.cells.pictures.html
I want to convert this type to something that allows me to use Linq expressions
What are the options for this?
I guess I could iterate over it and manually add it to a new List<Picture>
But is there a better way to do this?
I have read this question Adding IEnumerable<T> to class derived from CollectionBase
But I obviously don't have control over the class that implements CollectionBace as it is a third party product
Just use the
Enumerable.Cast<T>()
extension method on the non-genericIEnumerable
interface, which you can do implicitly in a query expression:or explicitly, for instance if you want to use dot notation:
An alternative to
Cast<T>()
isOfType<T>()
- which basically ignores any elements which aren't of the right type. In this case I thinkCast<T>()
is more appropriate though.If you want to convert the whole collection to a
List<T>
for whatever reason, that's easy too: