我有一个使用几个级别的类继承的应用程序。我想知道如果我有一个从基类派生的对象集合,例如只是

IEnumerable<BaseClass>


如果不是BaseClass,如何找到集合中所有对象的最高通用Type?

问候,

最佳答案

Type baseType = null;

foreach (var obj in objects)
{
    if (baseType == null)
        baseType = obj.GetType();
    else
    {
        Type currentType = obj.GetType();

        while (!baseType.IsAssignableFrom(currentType))
            baseType = baseType.BaseType;
    }
}


此代码仅适用于实际的继承层次结构,不适用于接口层次结构。

09-25 22:19