C#简单的方法来复制或克隆的DataRow?
我正在寻找一个简单的方法来创build一个DataRow的克隆。 有点像拍这行的快照并保存。 原始行的值可以随意更改,但是我们仍然有另一个保存的副本不会更改。 这是正确的方法吗?
DataRow Source, Destination; //Assume we create some columns and fill them with values Destination.ItemArray = Source.ItemArray;
这是否只是将Snapshot的ItemArray引用指向Source中的引用,还是实际上创build了一个单独的副本? 我应该这样做吗?
Destination.ItemArray = Source.ItemArray.Clone();
编辑:我不认为第二个代码片段实际编译。
您可以使用ImportRow
方法将Row从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[];
将工作
但要确保新表可以在新表中访问,则需要closures表:
DataTable Destination = new DataTable(Source.TableName); Destination = Source.Clone(); DataRow sourceRow = Source.Rows[0]; Destination.ImportRow(sourceRow);