実行時に設定されるカスタムタイプのリストを作成しようとしています。これはどのように可能ですか?
これが私のコードです:
Type customType = typeof(string); // or someOtherVariable.GetType();
List<customType> ls = new List<customType>(); // Error: The type or namespace name `customType' could not be found
リフレクトタイプの汎用リストをインスタンス化する場合は、リフレクションを使用してインスタンス化する必要があります。
var type = typeof(string);
var list = typeof(List<>);
var listOfType = list.MakeGenericType(type);
var instance = Activator.CreateInstance(listOfType);
これはできません。ジェネリックコレクションは、コンパイル時に強く型付けされます。新しいクラスを発行/コード生成し、必要に応じてその場でコンパイルすることもできますが、それは非常に異なる問題です。