2012-11-16 8 views
5

私は親クラスXと子クラスX1とX2の2つのリストを持っています(X1とX2はXから派生しています)。 X1とX2のリストをXのリストに結合する簡単な方法はありますか?
X1とX2のリストをループしてXのリストに追加することができますが、これはやや面倒です。子クラスリストと親クラスリストの結合

+0

あなたはキャストを使用することができますが、私は確か – m4ngl3r

+0

推測するが、それはループが必要です。私はlinq(少ないコード)の解決策を探しています – cs0815

答えて

6

LINQは

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

または

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

として便利なこの操作を行うことができますが、それにもかかわらず、ループだ - ちょうどカバーの下に。このような

+0

私はあまりにも多くのコードを書く必要はない限りループ本当に気にしない( - :ちょうどConvertAllをまたいで来た – cs0815

2

使用Enumerable.Cast方法、:

var list1 = new List<X1>(); 
var list2 = new List<X2>(); 
var result = list1.Cast<X>().Concat(list2.Cast<X>()).ToList(); 
関連する問題