Heim > Backend-Entwicklung > C++ > Wie kann ich eine Liste in eine Liste in C#konvertieren?

Wie kann ich eine Liste in eine Liste in C#konvertieren?

Linda Hamilton
Freigeben: 2025-02-01 17:56:40
Original
429 Leute haben es durchsucht

How Can I Convert a List to a List in C#?

c# list & lt;

Vererbung in Objektorientierter Programmierung ermöglicht es Derivaten, die Attribute und Methoden ihrer Basisklasse zu erben. Manchmal ist jedoch nicht klar, warum diese Vererbung nicht auf Generika -ähnliche Liste angewendet werden kann. Betrachten Sie das folgende Beispiel:

In diesem Code tritt der Compiler -Fehler auf, da die Liste

nicht implizit in die Liste

konvertiert werden kann. Selbst wenn die Klasse C die Schnittstelle A erbt, kann der Compiler den Satz der abgeleiteten Klasse nicht automatisch in eine Sammlung seiner Basisklasse umwandeln.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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

Um dieses Problem zu lösen, gibt es zwei Möglichkeiten: Verwenden Sie ConvertAll

Convertall -Methode akzeptiert eine Funktion als Parameter und erstellt eine neue Liste, indem die Funktion der Funktion auf die Quellliste angewendet wird. In diesem Beispiel wandelt die Funktion (x = & gt; (a) x) jedes Element der Liste in Typ A. Gewaltvötig um.

Verwenden Sie linq

1

List<A> listOfA = new List<C>().ConvertAll(x => (A)x);

Nach dem Login kopieren

Mit

Linqs Cast

() können Sie einen Listenartyp in eine andere Liste umwandeln. Durch Konvertieren von Liste in die Auflistung und dann in die Liste, können Sie eine Sammlung von Basisklassenobjekten aus einer Sammlung des abgeleiteten Klassenobjekts erstellen.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Liste in eine Liste in C#konvertieren?. 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