実行時に定義されたタイプを使用してlistOfBaseItems.Cast<Child>()
と同様のものを実現する方法はありますか?例えばキャストIEnumerable <T>ランタイムタイプ
var t = typeof(Child); // the type would be a method argument in my case
var desiredType = typeof(List<>).MakeGenericType(t);
var castedList = Convert.ChangeType(listOfBaseItems, desiredType);
私はアイテムがIConvertible
を実装していないという例外を取得。私は何が欠けていますか?
'Cast'単に汎用の拡張メソッドであり、リフレクションを使用して呼び出すことができます。 –
'List'を 'List 'にキャストしようとしていますが、*動作できません。 'List 'はクラスなので不変です。あなたはここで達成しようとしていることをよりよく説明する必要があります。 See [ask] –
typeを引数として渡すのではなく、汎用メソッド 'public void Bob()'を使用していますか?または、型はコンパイル時ではなく、実行時にのみ認識されますか? –
mjwills