Heim > Backend-Entwicklung > C++ > Wie konvertieren Sie eine Liste abgeleiteter Klassen in eine Liste von Basisklassen in C#?

Wie konvertieren Sie eine Liste abgeleiteter Klassen in eine Liste von Basisklassen in C#?

Mary-Kate Olsen
Freigeben: 2025-02-01 17:41:10
Original
1123 Leute haben es durchsucht

How to Convert a List of Derived Classes to a List of Base Classes in C#?

C#Die Texte werden in eine Liste der Basisklassen

verwandelt Der Vererbungsmechanismus ermöglicht es uns, neue Klassen basierend auf der vorhandenen Klasse zu erstellen. Das gleiche Konzept gilt jedoch nicht direkt für generische Listen. Insbesondere können wir keine

deklarieren und eine Liste abgeleiteter Typen zuweisen, auch wenn die abgeleitete Klasse die selbstbasierte Klasse erbt. Bitte betrachten Sie das folgende Beispiel:

List<基类>

Dieser Code schlägt während der Kompilierung fehl, da der Compiler eine Liste eines A -Objekts erwartet, nicht die Liste des C -Objekts. Um dieses Problem zu lösen, müssen wir die Liste der abgeleiteten Objekte in eine Liste von Basisobjekten umwandeln.
interface A { }

class B : A { }

class C : B { }

class Test
{
    static void Main(string[] args)
    {
        A a = new C(); // 正确
        List<A> listOfA = new List<C>(); // 编译错误
    }
}
Nach dem Login kopieren

<换> Konvertierungsmethode

Die Methode zur Konvertierung von <换> in besteht darin, die Listenelemente zu iterieren und manuell manuell zu konvertieren. Dies kann mit

Methode implementiert werden:

List<派生类> List<基类> Hier konvertieren jedes der Elemente in der iteratorischen C -Liste sie in ein Typ A und fügen Sie die neue Liste der Liste hinzu. ConvertAll

Die alternative Methode zur Verwendung von Linq
List<A> listOfA = new List<C>().ConvertAll(x => (A)x);
Nach dem Login kopieren

oder wir können LINQ verwenden, um die Konvertierung auszuführen:

hier konvertieren Sie jedes Element in der Liste in Typ A und erstellt

eine neue Liste, die das Conversion -Element enthält.

Das obige ist der detaillierte Inhalt vonWie konvertieren Sie eine Liste abgeleiteter Klassen in eine Liste von Basisklassen in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage