C# простой способ скопировать или клонировать DataRow?
Я ищу простой способ сделать клон DataRow. Вроде как сделать снимок этой строки и сохранить ее. Значения исходной строки могут быть изменены, но у нас все еще есть другая сохраненная копия, которая не изменяется. Это правильный способ сделать это?
DataRow Source, Destination;
//Assume we create some columns and fill them with values
Destination.ItemArray = Source.ItemArray;
будет ли это просто установить ссылку Itemarray моментального снимка, чтобы указать на один в источнике или он на самом деле делает отдельную копию? Я должен сделать это?
Destination.ItemArray = Source.ItemArray.Clone();
редактировать: я не думаю второй фрагмент кода фактически компилируется.
2 ответа:
можно использовать
ImportRow
метод чтобы скопировать строку из 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[];
совместимость