Versuchen Sie folgendes:
void foobar(Type t)
{
var listType = typeof(List<>);
var constructedListType = listType.MakeGenericType(t);
var instance = Activator.CreateInstance(constructedListType);
}
Nun, was mit instance
zu tun? Da Sie die Art Ihrer Liste den Inhalt nicht kennen, wahrscheinlich das Beste, was würden Sie tun könnte instance
als IList
zu werfen, so dass Sie etwas anderes als nur ein object
haben könnte: kann
// Now you have a list - it isn't strongly typed but at least you
// can work with it and use it to some degree.
var instance = (IList)Activator.CreateInstance(constructedListType);
Was erwarten Sie mit einer Liste, die Sie nicht wissen, die Art der Kompilierung? – dtb
Können Sie dies als generische Funktion schreiben, wie in 'void foobar() {IList newList = neue Liste (); } ' –
Juliet
Ich habe das Gefühl, dass dies ein Code-Geruch sein könnte, als Folge der Bewältigung eines größeren Problems in einer schlechten Art und Weise. –