我有一个简短的问题。
我有几个类,比如 Class SubA、SubB 和 SubC。 我也有一个抽象类,假设是 Parent
所以我有一个父对象数组,其中包含 SubA、SubB 和 SubC 的实例。
我基本上是在尝试遍历数组或 Parents 并获取 SubA 的特定实例。
我尝试了以下但它产生了类型异常:
foreach (SubA a in Parent.GetList())
如有任何帮助,我们将不胜感激。
最佳答案
是的,当前代码有一个隐式转换,如果您的集合中有一个“错误”类型的对象,它将失败。我建议你使用 LINQ 的 OfType
方法:
using System.Linq; // Make LINQ extension methods available
...
foreach (SubA a in Parent.GetList().OfType<SubA>())
{
...
}
请注意,上面的 a
永远不会为 null - 我假设这没问题。
关于c# - 从抽象类型对象数组访问特定子类的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19098862/