Создать список типов переменных
Я пытаюсь создать список определенного типа.
Я хочу использовать нотацию List, но все, что я знаю, это "System.Type"
Тип a имеет переменную. Как создать список типа переменной?
Я хочу что-то похожее на этот код.
public IList createListOfMyType(Type myType)
{
return new List<myType>();
}
Ответы
Ответ 1
Вы можете использовать Reflections, вот пример:
Type mytype = typeof (int);
Type listGenericType = typeof (List<>);
Type list = listGenericType.MakeGenericType(mytype);
ConstructorInfo ci = list.GetConstructor(new Type[] {});
List<int> listInt = (List<int>)ci.Invoke(new object[] {});
Ответ 2
Что-то вроде этого должно работать.
public IList createList(Type myType)
{
Type genericListType = typeof(List<>).MakeGenericType(myType);
return (IList)Activator.CreateInstance(genericListType);
}