Heim >Backend-Entwicklung >C++ >Gibt es eine kürzere Möglichkeit, eine Liste in C# in eine Liste umzuwandeln?

Gibt es eine kürzere Möglichkeit, eine Liste in C# in eine Liste umzuwandeln?

Susan Sarandon
Susan SarandonOriginal
2025-01-03 11:05:40843Durchsuche

Is There a Shorter Way to Cast a List to a List in C#?

Kürzere Syntax für die Umwandlung aus einer Liste in eine Liste

Das Umwandeln einer Liste von Elementen von einem Typ in einen anderen kann oft mit dem folgenden Ansatz erreicht werden:

List<Y> ListOfY = new List<Y>();

foreach (X x in ListOfX)
    ListOfY.Add((Y)x);

Diese Methode erfordert jedoch jedes Umwandeln Artikel einzeln aufzubewahren, was umständlich sein kann. Gibt es nicht eine prägnantere Möglichkeit, die gesamte Liste in einem Schritt zu besetzen?

Antwort

Ja, die Besetzung<> Die Erweiterungsmethode im System.Linq-Namespace bietet eine prägnante Syntax für die Umwandlung einer Liste. So können Sie es verwenden:

List<Y> listOfY = listOfX.Cast<Y>().ToList();

Beachten Sie die folgenden Punkte:

  • Importieren Sie die Datei using System.Linq; Namespace.
  • Diese Methode wandelt jedes Element in der Liste um, nicht die Liste selbst. Die ToList()-Methode wird verwendet, um eine neue Liste zu erstellen. mit den gegossenen Gegenständen.
  • Guss<> unterstützt keine benutzerdefinierten Konvertierungsoperatoren. In solchen Fällen müssen Sie möglicherweise auf den zuvor gezeigten expliziten Casting-Loop-Ansatz zurückgreifen.
  • Cast<> funktioniert nicht für Objekte mit expliziten Operatormethoden (Framework 4.0).

Das obige ist der detaillierte Inhalt vonGibt es eine kürzere Möglichkeit, eine Liste in C# in eine Liste umzuwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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