如何用未知类型实例化泛型列表

本文关键字:泛型 列表 实例化 类型 何用 未知 | 更新日期: 2023-09-27 18:06:12

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

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

如何用未知类型实例化泛型列表

您可以将该方法设置为泛型:

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

如果你的方法需要在这些对象上执行任何一致的操作,你可以将类型约束为接口或基类。

通过反射:

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