声明列表的通用类型

时间:2014-03-04 19:57:49

标签: c# generics

您好我想知道是否可以做类似这样的事情。

int myInt = 0;
Type myType = myInt.GetType();
List<myType> lst = new List<myType>();

我在这里知道myType变量int类型myInt但是我想知道是否有任何方法可以在上下文中执行类似的操作我不知道{的类型{1}}

这让我问自己为什么这是无效的。我知道这很愚蠢,但为什么它无效?

List<typeof(int)> myList = new List<typeof(int)>();

所以我想在这里排队做点什么。有什么办法能够达到类似于其中任何一种的东西吗?

1 个答案:

答案 0 :(得分:2)

是的,这是可能的,但您必须添加一些反思。

void Main()
{
    int myInt = 0;
    Type myType = myInt.GetType();

    var listType = typeof(List<>).MakeGenericType(new Type[]{myType});
    var list = Activator.CreateInstance(listType); 
}