Frage

Ich bin mit Aspose Zellen Excel-Tabellen zu manipulieren. Einer der Typen in der API ist eine Sammlung von Bildern in der Tabelle, die ergibt sich aus Collection:

siehe diesen Link: http: // www .aspose.com / Dokumentation / .net-Komponenten / aspose.cells-for-.net / aspose.cells.pictures.html

Ich mag diese Art etwas konvertieren, die ich Linq Ausdrücke verwenden kann

Was sind die Optionen für das?

Ich glaube, ich drüber laufen konnte und es manuell auf einen new List<Picture> hinzufügen Aber gibt es einen besseren Weg, dies zu tun?

Ich habe diese Frage gelesen IEnumerable Hinzufügen Klasse von Collection abgeleitet

Aber ich offensichtlich nicht über die Kontrolle über die Klasse, die implementiert CollectionBace wie es ein Drittprodukt ist

War es hilfreich?

Lösung

Verwenden Sie einfach die Enumerable.Cast<T>() Erweiterungsmethode auf der nicht-generic IEnumerable Schnittstelle, die Sie implizit in einem Abfrageausdruck kann:

var query = from Picture picture in pictures
            where ...
            select ...;

oder explizit zum Beispiel, wenn Sie wollen Notation verwenden dot:

var query = pictures.Cast<Picture>()
                    .Where(...)
                    .Select(...);

Eine Alternative zu Cast<T>() ist OfType<T>() - die ignoriert grundsätzlich alle Elemente die nicht von der richtigen Art. In diesem Fall denke ich, Cast<T>() geeignetere obwohl ist.

Wenn Sie die ganze Sammlung zu einem List<T> aus irgendeinem Grunde zu konvertieren, die einfach zu ist:

List<Picture> list = pictures.Cast<Picture>().ToList();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top