Tiefe Kopie eines C# - Objekt
Arbeite ich auf einige code, der in C# geschrieben ist. In dieser app, ich habe eine benutzerdefinierte Sammlung wie folgt definiert:
public class ResultList<T> : IEnumerable<T>
{
public List<T> Results { get; set; }
public decimal CenterLatitude { get; set; }
public decimal CenterLongitude { get; set; }
}
Art verwendet, indem die Ergebnisse sind eine von drei benutzerdefinierten Typen. Die Eigenschaften jedes der benutzerdefinierten Typen sind einfach nur primitive Typen (int, strings, bools, int?, bool?). Hier ist ein Beispiel eines benutzerdefinierten Typen:
public class ResultItem
{
public int ID { get; set; }
public string Name { get; set; }
public bool? isLegit { get; set; }
}
Wie führe ich eine Tiefe Kopie eines ResultList-Objekt, die ich erstellt habe. Ich fand diesen Beitrag: Generische Methode zum anlegen der tiefen Kopie aller Elemente in einer Auflistung. Allerdings kann ich nicht herausfinden, wie es zu tun.
Was haben Sie versucht? Welche Fehlermeldung hast du? Jon Skeet ist code, den Sie gefunden, die einfach funktioniert, soweit ich das sehen kann.
Flache oder Tiefe Kopie? stackoverflow.com/questions/11073196/...
Warum sind Sie und die OP von diese queston scheinbar verwenden die exakt gleichen Daten-Struktur in deinem Beispiel?
Flache oder Tiefe Kopie? stackoverflow.com/questions/11073196/...
Warum sind Sie und die OP von diese queston scheinbar verwenden die exakt gleichen Daten-Struktur in deinem Beispiel?
InformationsquelleAutor user70192 | 2012-06-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer der Gründe, warum die ResultList-Klasse wird nicht mit Jon Skeet ist Beispiel ist, weil es keine Implementierung der ICloneable-Schnittstelle.
ICloneable implementieren alle Klassen, die Sie benötigen, geklont, z.B.
Und auch auf ResultList:
Dann, um eine Tiefe Kopie des Objekts:
InformationsquelleAutor Rei Mavronicolas
Durch den Ansatz mit den wenigsten Programmieraufwand ist das serialisieren und Deserialisieren durch eine
BinaryFormatter
.Könnten Sie die folgende extension-Methode (entnommen aus Kilhoffer Antwort):
...und dann rufen Sie:
InformationsquelleAutor Douglas
Weiter geht ' s mit @Georgi-es, ich hatte zu ändern, seinen code zu verarbeiten Eigenschaften, deren Typ erbt Liste:
InformationsquelleAutor jeromeyers
Hier ist etwas, das ich brauchte, und schrieb, es verwendet reflektion, um zu kopieren, jeder Eigenschaft (und private, wenn angegeben)
InformationsquelleAutor Georgi-it