Heim > Backend-Entwicklung > C++ > Wie kann ich in C# effizient eine Liste eines Typs in einen anderen umwandeln?

Wie kann ich in C# effizient eine Liste eines Typs in einen anderen umwandeln?

Linda Hamilton
Freigeben: 2025-01-04 22:20:42
Original
517 Leute haben es durchsucht

How Can I Efficiently Cast a List of One Type to Another in C#?

Prägnanteres Umwandeln von Listen

In C# kann das Umwandeln einer Liste von Elementen von einem Typ in einen anderen durch explizites Umwandeln jedes einzelnen Elements erreicht werden . Dieser Vorgang ist zeitaufwändig und kann zu unübersichtlichem Code führen. Gibt es eine Möglichkeit, diesen Prozess zu rationalisieren, indem die gesamte Liste auf einmal übertragen wird?

Der ursprüngliche Vorschlag schlägt die Verwendung der direkten Übertragung vor:

ListOfY = (List<Y>)ListOfX;
Nach dem Login kopieren

Obwohl dies logisch erscheinen mag, ist dies mit nicht möglich C# in seiner aktuellen Form. Es gibt jedoch eine prägnantere und effizientere Lösung:

List<Y> listOfY = listOfX.Cast<Y>().ToList();
Nach dem Login kopieren

Diese Methode nutzt das Cast Erweiterungsmethode, um jedes Element in der Liste in den Zieltyp Y zu konvertieren. Die ToList()-Methode wird dann für das resultierende IEnumerable aufgerufen. um eine neue Liste zu erstellen enthält die konvertierten Elemente.

Wichtige Hinweise:

  • Einschließen mit System.Linq; um auf die Besetzung zuzugreifen Erweiterungsmethode.
  • Diese Methode wandelt einzelne Elemente um, nicht die Liste selbst.
  • Es werden keine benutzerdefinierten Konvertierungsoperatoren unterstützt.
  • Wenn das Quellobjekt über eine explizite Operatormethode verfügt ( Framework 4.0) wird diese Methode nicht funktionieren.

Das obige ist der detaillierte Inhalt vonWie kann ich in C# effizient eine Liste eines Typs in einen anderen umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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