将子类列表合并到父类列表



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

LINQ 可以方便地执行此操作

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

或与

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

但它仍然在循环 - 就在被子下面。

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

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

最新更新