Я не думаю, что это можно сделать на С#, но публиковать это просто, чтобы убедиться. Вот моя проблема. Я хотел бы сделать что-то вроде этого на С#:
var x = 10;
var l = new List<typeof(x)>();
или
var x = 10;
var t = typeof(x);
var l = new List<t>();
Но, конечно, это не сработает. Хотя это не должно быть проблемой, так как тип t разрешается во время компиляции. Я понимаю, что это можно решить с помощью отражения, но поскольку типы известны во время компиляции с использованием отражения, будет излишним.