将子类列表与父类列表组合在一起

时间:2012-11-16 11:23:39

标签: c# linq c#-4.0

我有一个父类X和两个子类列表X1和X2(X1和X2派生自X)。有没有一种简单的方法可以将X1和X2的列表组合成一个X列表? 我可以循环遍历X1和X2的列表,然后添加到X列表中,但这看起来有点麻烦。

2 个答案:

答案 0 :(得分:6)

LINQ可以通过

方便地完成此操作
var both = list1.Cast<X>().Concat(list2.Cast<X>()).ToList();

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

但它正在循环 - 只是在幕后。

答案 1 :(得分:2)

使用Enumerable.Cast方法,如下所示:

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