我有一个快速的问题。

我有几个班级,例如SubA,SubB和SubC。
我也有一个抽象类,可以说父母

因此,我有一个Parent对象数组,其中包含SubA,SubB和SubC的实例。

我基本上是试图遍历数组或父对象,并获取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永远不会为空-我假设这是可以的。

10-07 16:29