0

我需要List<T>在运行时创建一个类型:我有一个表示列表中单个项目类型的字符串(T)和一个对象数组。我的问题是:我怎样才能获得List<T>

我希望我解释了自己:)

谢谢

4

2 回答 2

1

你可以使用类似的东西:

Type itemType = Type.GetType("my type name as string");
Type listType = typeof(List<>).MakeGenericType(itemType);
return (IList) Activator.CreateInstance(listType);
于 2012-06-08T09:26:07.597 回答
1

首先,您确定要这样做吗?闻起来像一个设计缺陷。

以下是如何执行此操作的示例:

var stringType = Type.GetType("System.String");
var listType = typeof (List<>);
var stringListType = listType.MakeGenericType(stringType);
var list = Activator.CreateInstance(stringListType) as IList;

list.Add("Foo");
list.Add("Bar");
list.Add("Baz");
于 2012-06-08T09:28:23.853 回答