我有许多类都继承自基类 - 事实上,它只是一个接口(interface)的包装器,以允许序列化:
public abstract class VoucherRuleBase : IRule{
public abstract bool Save(int nodeID);
}
public class ActiveDateRule : VoucherRuleBase{
public DateTime ActiveDateRuleProperty{get;set;}
...etc
}
然后我有一个List<VoucherRuleBase>
其中包含多个 ActiveDateRule
对象,或许多其他派生类。该列表总是充满相同的类型,即。所有 ActiveDateRules 或其他派生类之一。
我需要将列表转换/转换为列表,因为我试图将列表绑定(bind)到网格,但由于网格只能看到基类,因此无法找到任何属性。在运行时.NET 知道“真实”类型,只是在编译时我无法将其转换。这是因为它根本不可能 - 如果每个派生类上没有一些构造函数来进行转换?
我在这里搜索过,确实还有其他类似的问题,但我对这些解决方案没有任何运气。
一如既往地感谢任何帮助.. 谢谢
最佳答案
你试过吗myList.Cast<BaseClass>
?
关于c# - 将列表<baseclass> 转换为列表<衍生类>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16833764/