gpt4 book ai didi

c# - 如何将基类型列表转换为派生类型列表

转载 作者:行者123 更新时间:2023-11-30 13:23:02 26 4
gpt4 key购买 nike

似乎有很多问题从派生类到基类,但我的问题是如何将基类型列表转换为派生类型列表?

public class MyBase {
public int A;
}

public class MyDerived : MyBase {
public int B;
}

public void MyMethod() {
List<MyBase> baseCollection = GetBaseCollection();
List<MyDerived> derivedCollection = (List<MyDerived>)baseCollection; // Which doesn't work
}

我最终得到的解决方案不是很优雅。

public class MyBase {
public int A;
}

public class MyDerived {
public int B;
public MyBase BASE;
}
public void MyMethod() {
List<MyBase> baseCollection = GetBaseCollection();
List<MyDerived> derivedCollection = new List<MyDerived>();
baseCollection.ForEach(x=>{
derivedCollection.Add(new derivedCollection(){ BASE = x});
});
}

一定有更好的方法...

最佳答案

您可以使用 Linq 方法 OfType<MyDerived>() ,例如:

List<MyDerived> derivedCollection = baseCollection.OfType<MyDerived>().ToList();

它将删除所有不是 MyDerived 的项目虽然类

关于c# - 如何将基类型列表转换为派生类型列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15274146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com