DataRowのクローンを作成する簡単な方法を探しています。その行のスナップショットを取得して保存するようなものです。元の行の値は自由に変更できますが、変更されていない別の保存済みコピーがまだあります。これは正しい方法ですか?
DataRow Source, Destination;
//Assume we create some columns and fill them with values
Destination.ItemArray = Source.ItemArray;
これは、SnapshotのItemArray参照をSource内の参照を指すように設定するだけですか、それとも実際に別のコピーを作成しますか?代わりにこれを行う必要がありますか?
Destination.ItemArray = Source.ItemArray.Clone();
編集:私は2番目のコードスニペットが実際にコンパイルするとは思わない。
ImportRow
method を使用して、同じスキーマでDataTableからDataTableに行をコピーできます。
var row = SourceTable.Rows[RowNum];
DestinationTable.ImportRow(row);
更新:
新しい編集で、私は信じています:
var desRow = dataTable.NewRow();
var sourceRow = dataTable.Rows[rowNum];
desRow.ItemArray = sourceRow.ItemArray.Clone() as object[];
働くでしょう