| 

.NET C# Java Javascript Exception

1
Gibt es eine einfache Möglichkeit Elemente eines Typs aus einer Collection zu holen? Also irgendwie so:
List<MyType> li = new List<MyType>();
IEnumerable<MyType> ie = li.GetAllElementsWithType<MyType>();
19.03.2011
hotlips 11 2
2 Antworten
4
Wenn Du li so definierst wie angegeben, sind da sowieso nur Elemente vom Typ MyType drin, und li ist dann auch schon ein IEnumerable<MyType>. Falls Du auf einen bestimmten abgeleiteten Typ einschränken willst, geht das mit LINQ, z.B. so (ungetestet, nur getippt):

IEnumerable<MySubType> ie = li.Where(x => x is MySubType).Cast(MySubType);
19.03.2011
Matthias Hlawatsch 13,2k 4 9
1
Wie @Matthias Hlawatsch schon schrieb, ist dein Beispiel sinnlos, weil die Tatsache, dass C# statisch getypt ist, sowieso schon garantiert, dass die Liste li ausschließlich Elemente vom Typ MyType enthalten kann.

Falls du wissen wolltest, wie du Elemente eines Untertyps von MyType herausfiltern kannst, dafür gibt es die Erweiterungsmethode System.Linq.Enumerable.OfType<TResult>:
var li = new List<MyType>() { new MyType(), new MyDerivedType(), new MyType() };
var ie = li.OfType<MyDerivedType>();
20.03.2011
Jörg W Mittag 571 2 4

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH