我有一个父类 X 和两个子类 X1 和 X2 的列表(X1 和 X2 派生自 X)。有没有一种简单的方法可以将 X1 和 X2 的列表组合成 Xs 的列表?
我可以遍历 X1 和 X2 的列表,然后将其添加到 X 的列表中,但这似乎有点麻烦。
问问题
1297 次
2 回答
6
LINQ 可以方便地做到这一点
var both = list1.Cast<X>().Concat(list2.Cast<X>()).ToList();
或与
var both = ((IEnumerable<X>)list1).Concat((IEnumerable<X>)list2).ToList();
但它仍然在循环——就在幕后。
于 2012-11-16T11:25:38.043 回答
2
使用Enumerable.Cast方法,如下所示:
var list1 = new List<X1>();
var list2 = new List<X2>();
var result = list1.Cast<X>().Concat(list2.Cast<X>()).ToList();
于 2012-11-16T11:26:29.050 回答