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

cs0*_*815 5 c# linq c#-4.0

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

Jon*_*Jon 6

LINQ可以方便地使用

var both = list1.Cast<X>().Concat(list2.Cast<X>()).ToList();
Run Code Online (Sandbox Code Playgroud)

或者

var both = ((IEnumerable<X>)list1).Concat((IEnumerable<X>)list2).ToList();
Run Code Online (Sandbox Code Playgroud)

但它仍在循环 - 只是在幕后.