Klonen eines generischen .NET-Wörterbuchs: Erzielen flacher oder tiefer Kopien
Beim Arbeiten mit einem generischen Wörterbuch
Wenn Sie eine flache Kopie suchen, bei der nur die Objekte der obersten Ebene kopiert werden, wird der Konstruktoransatz dringend empfohlen. Die andere in diesem Beitrag beschriebene Methode bietet einen Klonmechanismus, der in bestimmten Szenarien von Vorteil sein kann.
Bestimmen der Kopiertiefe
Die Tiefe der Kopie hängt von der Kopie ab Einzelheiten zu Ihren Bedürfnissen. Eine flache Kopie kopiert nur die Objekte der obersten Ebene, während eine tiefe Kopie den gesamten Objektgraphen repliziert, einschließlich aller verschachtelten Objekte.
Die richtige Methode wählen
Für a Bei einer flachen Kopie besteht der einfachste Ansatz darin, den Konstruktor zu verwenden, der ein vorhandenes Wörterbuch als Eingabe verwendet. Dadurch wird effektiv ein neues Wörterbuch mit identischen Schlüssel-Wert-Paaren erstellt. Wenn Sie möchten, können Sie dazu auch die ToDictionary-Methode von LINQ verwenden, wie unten gezeigt:
var newDictionary = oldDictionary.ToDictionary(entry => entry.Key, entry => entry.Value);
Um eine tiefe Kopie durchzuführen, wenn T ICloneable implementiert, können Sie die ToDictionary-Methode erneut nutzen, wie hier gezeigt:
var newDictionary = oldDictionary.ToDictionary(entry => entry.Key, entry => (T) entry.Value.Clone());
Diese Ansätze sollten Ihnen den passenden Kopiermechanismus für Ihre spezifischen Anforderungen bieten.
Das obige ist der detaillierte Inhalt vonWie klont man ein generisches .NET-Wörterbuch: Shallow vs. Deep Copy?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!