Я полагаю, что ваша коллекция должна быть одного типа MyClass (как в T должна быть одинаковой), потому что компилятор не будет знать, какие типы вы добавили к каким элементам в коллекции.
Другими словами, если вам нужно добавить 2 элемента в список:
list.Add(new MyClass<string>());
list.Add(new MyClass<int>());
, попробуйте сослаться на один из них:
var myItem = list[1];
Компилятор не знаеткакое обобщение было назначено списку MyClass в элементе 1 , потому что элементы добавляются во время выполнения, но обобщенные значения определяются во время компиляции.
Я почти уверен, что вы хотитесделать нельзя.
Если вы заранее знаете количество элементов, возможно, вы могли бы использовать Tuple ?