it-swarm.com.de

C # einfache Möglichkeit zum Kopieren oder Klonen einer DataRow?

Ich suche nach einer einfachen Möglichkeit, einen Klon einer DataRow zu erstellen. Ein bisschen wie ein Schnappschuss von dieser Reihe zu machen und es zu speichern. Die Werte der ursprünglichen Zeile können dann geändert werden, es ist jedoch noch eine weitere gespeicherte Kopie vorhanden, die sich nicht ändert. Ist das der richtige Weg?

    DataRow Source, Destination;
    //Assume we create some columns and fill them with values
    Destination.ItemArray = Source.ItemArray;

Wird hierdurch die ItemArray-Referenz von Snapshot so eingestellt, dass sie auf die Referenz in Source verweist, oder wird tatsächlich eine separate Kopie erstellt? Soll ich das stattdessen machen?

    Destination.ItemArray = Source.ItemArray.Clone();

EDIT: Ich glaube nicht, dass das zweite Code-Snippet tatsächlich kompiliert wird.

102
Paul Matthews

Sie können ImportRow Methode verwenden, um Row von DataTable nach DataTable mit demselben Schema zu kopieren:

var row = SourceTable.Rows[RowNum];
DestinationTable.ImportRow(row);

Update:

Mit deinem neuen Edit glaube ich:

var desRow = dataTable.NewRow();
var sourceRow = dataTable.Rows[rowNum];
desRow.ItemArray = sourceRow.ItemArray.Clone() as object[];

wird funktionieren

170
cuongle