-4

我有一个对象作为参数,我想从该对象类型中创建一个通用列表。大多数时候我想发送一个自定义对象类型。这段代码声明了我的问题的概念。

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

2 回答 2

0

通过反射:

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

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

但最好使用泛型。

于 2013-03-27T14:35:25.307 回答
0

您可以使该方法通用:

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

如果您的方法需要对这些对象执行任何一致的操作,您可以将类型限制为接口或基类。

于 2013-03-27T14:32:31.003 回答