2012-11-16 15 views
5

Ich habe eine Elternklasse X und zwei Listen untergeordneter Klassen X1 und X2 (X1 und X2 leiten sich von X ab). Gibt es eine einfache Möglichkeit, die Listen von X1 und X2 zu einer Liste von Xs zu kombinieren?
Ich könnte über die Listen von X1 und X2 Schleife und fügen Sie dann zu der Liste von X, aber das scheint ein bisschen umständlich.Kombinieren von untergeordneten Klassenlisten mit der übergeordneten Klassenliste

+0

Sie CAST kann ich denke, – m4ngl3r

+0

sicher, aber das erfordert Looping. Ich bin auf der Suche nach einer linq (weniger Code) Lösung – cs0815

Antwort

6

LINQ kann dies bequem mit

var both = list1.Cast<X>().Concat(list2.Cast<X>()).ToList(); 

oder mit

var both = ((IEnumerable<X>)list1).Concat((IEnumerable<X>)list2).ToList(); 

aber es ist dennoch Looping - nur unter der Decke.

+0

kümmern nicht wirklich über Schleifen, solange ich nicht zu viel Code schreiben muss (-: kam gerade auch ConvertAll – cs0815

2

Verwenden Enumerable.Cast Methode, wie folgt aus:

var list1 = new List<X1>(); 
var list2 = new List<X2>(); 
var result = list1.Cast<X>().Concat(list2.Cast<X>()).ToList(); 
Verwandte Themen