Подтвердить что ты не робот

Создать список <> из режима исполнения

Я ищу для создания списка, где тип T - несколько несвязанных классов (с теми же аргументами конструктора), которые я знаю через отражение.

    DataBase = new ArrayList();
    foreach (Type T in Types)
    {
        DataBase.Add(new List<T>);
    }

К сожалению, Visual Studio говорит, что "Тип или пространство имен T не может быть найдено". Есть ли способ, которым я могу это реализовать, или листинг List для ввода T? Благодаря, Питер

4b9b3361

Ответ 1

Вы можете использовать отражение:

List<object> database = new List<object>();
foreach (Type t in Types)
{
   var listType = typeof(List<>).MakeGenericType(t);
   database.Add(Activator.CreateInstance(listType));
}

Ответ 2

Вы вводите в заблуждение типы и класс System.Type для Параметры типового типа, вот код для его реализации так, как вы хотите:

var lt = typeof(List<>);
foreach (Type T in Types)
{
    var l = Activator.CreateInstance(lt.MakeGenericType(T));
    DataBase.Add(l);
}