Heim >Backend-Entwicklung >C++ >Wie konvertieren Sie eine Liste abgeleiteter Klassen in eine Liste von Basisklassen 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<基类>
<code class="language-csharp">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>(); // 编译错误 } }</code>
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
<code class="language-csharp">List<A> listOfA = new List<C>().ConvertAll(x => (A)x);</code>
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!