我有一个父类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();