Heim > Backend-Entwicklung > C++ > Wie kann man generische Listen in C#effektiv klonen?

Wie kann man generische Listen in C#effektiv klonen?

DDD
Freigeben: 2025-01-30 20:11:09
Original
526 Leute haben es durchsucht

How to Effectively Clone Generic Lists in C#?

Der Klon der generischen Liste in der C#

In C#ist die Liste der geklonten generischen Objekte eine Herausforderung, da die gebaute -in

Klasse nicht direkt "klone ()" ist. Es gibt jedoch verschiedene Möglichkeiten, diese Funktion zu erreichen.

List<T> Der Werttypklon

Wenn das Element der Liste ein Werttyp ist, können Sie einfach eine neue Liste erstellen, die dieselben Elemente enthält:

IClonable Cloned Referenztyp

<code class="language-csharp">List<MyValueType> newList = new List<MyValueType>(oldList);</code>
Nach dem Login kopieren
verwenden

Wenn das Element ein Referenztyp ist und Sie tief kopiert werden müssen (dh die neue Liste und ihre Elemente haben nichts mit der Originalliste zu tun), können Sie die Schnittstelle verwenden:

"iClonable" im obigen Code wird durch den tatsächlichen Elementtyp ICloneable ersetzt.

<code class="language-csharp">List<ICloneable> oldList = new List<ICloneable>();
List<ICloneable> newList = new List<ICloneable>(oldList.Count);

oldList.ForEach(item => newList.Add((ICloneable)item.Clone()));</code>
Nach dem Login kopieren
Verwenden Sie den Referenztyp des Konstruktor -Klonreferenztyps

ICloneable

Wenn Ihr Elementtyp

nicht unterstützt, aber einen Kopierkonstruktor hat, können Sie die folgenden Methoden verwenden:

Diese Methode verwendet einen Kopierkonstruktor, um eine neue Instanz jedes Elements zu erstellen.

ICloneable Benutzerdefinierte Klonmethode

<code class="language-csharp">List<MyReferenceType> oldList = new List<MyReferenceType>();
List<MyReferenceType> newList = new List<MyReferenceType>(oldList.Count);

oldList.ForEach(item => newList.Add(new MyReferenceType(item)));</code>
Nach dem Login kopieren

Um die Methoden in der benutzerdefinierten Klonierungsmethode zu verkörpern:

Diese Methode akzeptiert eine generische Liste und gibt eine neue Klonliste zurück, wobei die entsprechende Klonierungsmethode gemäß der Art des Elements ausgewählt wird.

Das obige ist der detaillierte Inhalt vonWie kann man generische Listen in C#effektiv klonen?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage