Heim >Backend-Entwicklung >C++ >Wie konvertiere ich eine Liste in eine Liste in .NET?
Liste
Diese Anleitung erklärt, wie man eine Liste von Client
Objekten (List<Client>
) in eine Liste ihrer entsprechenden IDic
Schnittstellen (List<IDic>
) umwandelt.
Warum das direkte Casting fehlschlägt
Direktes Umwandeln von einem abgeleiteten Typ (wie Client
) in einen Basistyp (IDic
) ist in .NET zulässig. Die Umkehrung ist jedoch aufgrund von Kovarianzbeschränkungen nicht einfach. Diese Einschränkungen verhindern unsichere Vorgänge, bei denen eine Basistypliste unerwartet abgeleitete Typelemente enthalten könnte, wodurch die Typsicherheit gewahrt bleibt.
Effektive Konvertierungsmethoden
Zwei zuverlässige Methoden erzielen die gewünschte Konvertierung:
1. Nutzung von IEnumerable<IDic>
(.NET 4 und höher)
.NET 4 und spätere Versionen unterstützen Kovarianz mit IEnumerable<T>
. Dies ermöglicht die Konvertierung von List<Client>
in IEnumerable<IDic>
und ermöglicht die Iteration über Client
-Objekte als IDic
-Instanzen.
2. Erstellen einer neuen Liste
Um ein List<IDic>
zu erstellen, müssen Sie explizit eine neue Liste erstellen und diese mit den Schnittstellenreferenzen füllen. .NET 4 bietet hierfür die Methode ToList<T>()
. .NET 3.5 verwendet Cast<T>()
gefolgt von ToList()
.
Wichtiger Hinweis zur Datenunabhängigkeit
Beide Techniken generieren separate Listen und wahren so die Typsicherheit. Entscheidend ist, dass Änderungen am ursprünglichen List<Client>
nicht automatisch das neue List<IDic>
aktualisieren. In beiden Listen sind nur Änderungen sichtbar, die direkt an den Client
-Objekten selbst vorgenommen wurden.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich eine Liste in eine Liste in .NET?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!