Wie kann man etwas ähnliches wie listOfBaseItems.Cast<Child>()
mit einem in Runtime definierten Typ erreichen? z.B.Cast IEnumerable <T> auf Laufzeittyp
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);
erhalte ich eine Ausnahme, dass die Elemente nicht IConvertible
nicht implementiert. Was vermisse ich?
'Cast' ist nur eine generische Erweiterungsmethode, Sie können Reflektion verwenden, um sie aufzurufen. –
Sie versuchen, eine 'Liste' in eine 'Liste ' zu schreiben, die * nicht * funktionieren kann. 'Liste ' ist eine Klasse und daher invariant. Sie müssen besser erklären, was Sie hier erreichen wollen. Siehe [ask] –
Anstatt den Typ als Argument zu übergeben, verwendet eine generische Methode eine Option 'public void Bob()'? Oder ist der Typ nur zur Laufzeit bekannt, nicht Kompilierzeit? –
mjwills