パラメータとしてオブジェクトがあり、そのオブジェクト タイプから汎用リストを作成したいと考えています。ほとんどの場合、カスタム オブジェクト タイプを送信したいと考えています。このコードは、私の問題の概念を宣言しています。
public void myMethod(object myObject)
{
List<typeof(myObject)> _NewList=new List<typeof(myObject)();
}
パラメータとしてオブジェクトがあり、そのオブジェクト タイプから汎用リストを作成したいと考えています。ほとんどの場合、カスタム オブジェクト タイプを送信したいと考えています。このコードは、私の問題の概念を宣言しています。
public void myMethod(object myObject)
{
List<typeof(myObject)> _NewList=new List<typeof(myObject)();
}
メソッドをジェネリックにすることができます:
public void myMethod<T>(T myObject)
{
List<T> _NewList = new List<T>();
}
メソッドがこれらのオブジェクトで一貫したものを実行する必要がある場合は、型をインターフェイスまたは基本クラスに制約できます。
リフレクション経由:
var type = myObject.GetType();
var genericListType = typeof(List<>).MakeGenericType(new[] { type });
var list = (IList)Activator.CreateInstance(genericListType);
しかし、ジェネリックを使用する方が良いでしょう。