Die folgende Funktion akzeptiert ein Objekt, das manchmal ein Array eines bestimmten Typs sein kann. In diesem Fall könnte der Typ mit obj [0] .GetType () bestimmt werden, vorausgesetzt, das Array hat mindestens ein Mitglied. Ich möchte ein solches Array in eine generische Liste & lt; T & gt; des entsprechenden Typs, aber der folgende Code kann nur in die Liste & lt; Objekt & gt; umgewandelt werden. Wie kann das gemacht werden?
%Vor%Beachten Sie, dass GetSerializedObject () eine Funktion implementiert, die zur IDataContractSurrogate-Schnittstelle gehört. Daher glaube ich nicht, dass ich die Signatur wie gezeigt ändern kann.
Wenn Sie den Typ zum Zeitpunkt der Kompilierung nicht kennen, sollten Sie eine generische Methode dafür erstellen und sie dann per Reflektion aufrufen. Zum Beispiel:
%Vor% (Wenn Sie den Typ zur Kompilierungszeit kennen, machen Sie einfach eine generische Methode und rufen Sie Cast
und ToList
direkt auf.)
Probieren Sie die Cast () Linq-Methode:
%Vor%Und Sie werden den gewünschten Typ in T angeben.
Tags und Links c#