2012-11-16 7 views
5

Ho una classe padre X e due elenchi di classi figlio X1 e X2 (X1 e X2 derivano da X). C'è un modo semplice per combinare gli elenchi di X1 e X2 in un elenco di Xs?
Potrei scorrere gli elenchi di X1 e X2 e aggiungere quindi all'elenco di X ma questo sembra un po 'macchinoso.Combinazione di elenchi di classi figlio all'elenco di classi padre

+0

è possibile utilizzare getto immagino – m4ngl3r

+0

sicuro, ma che richiede il ciclo. Sto cercando una soluzione linq (meno codice) – cs0815

risposta

6

LINQ può farlo comodamente con

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

o con

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

ma è comunque loop - proprio sotto le coperte.

+0

non mi interessa davvero il ciclo finché non devo scrivere troppo codice (-: appena ho visto ConvertAll pure – cs0815

2

Usa Enumerable.Cast metodo, in questo modo:

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