Вы можете использовать отражение для этого. (Я не проверял это решение на своей машине, поэтому возможны незначительные различия.)
using System;
// ...
List<Type> listOfSubClasses =
from assembly in AppDomain.CurrentDomain.GetAssemblies()
from type in assembly.GetTypes()
where type.IsSubclassOf(typeof(A))
select type;
List<A> objects;
int[] variable;
foreach (Type subClass in listOfSubClasses) {
for (int i = 0; i < 3; i++) {
objects.Add((A)Activator.CreateInstance(subClass));
objects[objects.Count - 1].someParameter = variable[i];
}
}
Activator.CreateInstance
использует конструктор по умолчанию для создания объекта, но есть и другие перегрузки, если вам нужно что-то еще.
Решение для предоставления всех подклассов класса: здесь .