如何在C#中转换List <>

Shi*_*ivi 2 c# casting type-conversion

如何投两个List ...

我想要那样的东西

List<Obj1> list = new List<Obj1>();
list.add(new Obj1);

List<Obj2> list2 = new List<Obj2>();

list2.add((Obj1)list[0]);
Run Code Online (Sandbox Code Playgroud)

Pau*_*ane 5

您可能对Enumerable extension method Cast感兴趣.

IEnumerable<Obj2> enumerable = list.Cast<Obj2>();
Run Code Online (Sandbox Code Playgroud)

然后,您可以List根据需要转换为:

var list2 = enumerable.ToList()
Run Code Online (Sandbox Code Playgroud)

(这显然假设来自Obj1to的强制转换Obj2是有效的:Obj2派生自Obj1或存在转换运算符.)