大概想做的事情是下面的伪代码
public object Test(Type listType, Type genericType, object[] elements) { object list = ; // 生成list foreach (var element in elements) { // 添加元素到list中 } return list; }
大概能理解你的意思。
首先最简单的解决办法是用ArrayList,因为你要添加的对象是object类型数组,所以如果不在乎返回结果类的话:
public object Test(object[] elements) ArrayList list = new ArrayList(); Array.ForEach(elements, x=>list.Add(x)); return list; }
如果你需要返回一个强类型的list,也没必要利用反射,利用泛型即可,假设你的type是一个自定义的类:
public object Test2<T>(object[] elements) where T:class IList<T> list = new List<T>(); Array.ForEach(elements, x => { list.Add(x as T); }); return list; }
如果你非要用反射,不知道是不是下面这样
public object Test3(Type listType,Type genericType,object[] elements)