我有一个使用多级继承的应用程序。我想知道如果我有一组从Base Class派生的对象,例如简单地
IEnumerable<BaseClass>
我如何找到集合中所有对象派生的最高常见类型,如果不是BaseClass?
此致
答案 0 :(得分:4)
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;
}
}
此代码仅适用于实际的继承层次结构,不适用于接口层次结构。