2013-03-27 5 views
-4

У меня есть объект как параметр, и я хочу сделать общий список из этого типа объекта. В большинстве случаев я хочу отправить пользовательский тип объекта. Этот код объявляет концепцию моей проблемы.Как создать экземпляр общего списка из нестандартного типа?

public void myMethod(object myObject) 
{ 
    List<typeof(myObject)> _NewList=new List<typeof(myObject)(); 
} 
+0

Имеют ли ваши классы общий базовый класс? –

ответ

0

Вы могли бы сделать метод родовым:

public void myMethod<T>(T myObject) 
{ 
    List<T> _NewList = new List<T>(); 
} 

Вы можете ограничить тип для интерфейса или базового класса, если ваш метод должен выполнить что-либо последовательное на этих объектах.

0

Via отражение:

var type = myObject.GetType(); 
var genericListType = typeof(List<>).MakeGenericType(new[] { type }); 

var list = (IList)Activator.CreateInstance(genericListType); 

Но было бы лучше использовать дженерики.

Смежные вопросы