C#中带有类型参数的泛型类型

Max*_*Max 14 c# generics type-inference

我不认为这可以在C#中完成,但发布这个只是为了确保.这是我的问题.我想在C#中做这样的事情:

var x = 10;
var l = new List<typeof(x)>();
Run Code Online (Sandbox Code Playgroud)

要么

var x = 10;
var t = typeof(x);
var l = new List<t>();
Run Code Online (Sandbox Code Playgroud)

但当然这不起作用.虽然这不应该是一个问题,因为类型t在编译时被解析.我知道这可以通过反射来解决,但是因为类型在编译时已知使用反射将是过度的.

Ant*_*hyy 41

public static List<T> CreateCompatibleList<T> (T t)
{
    return new List<T> () ;
}

var x = 10 ;
var l = CreateCompatibleList (x) ;
Run Code Online (Sandbox Code Playgroud)


Joe*_*orn 6

您正试图让.Net使用运行时运算符设置泛型类型.如你所知,那是行不通的.必须在编译时设置泛型类型.