DataTable.Clear() 方法影响分离行

DataTable.Clear() method affect detached row

我正在尝试做这样的事情来创建类型化数据行的副本:

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

但是当我调用 dataTable.Clear() 方法时,它会清除 desRow 中的所有字段。如何创建 DataRow?

的深拷贝

在您的代码中,当您创建新行时,您会使用该行创建对 dataTable 的引用,这就是它清除所有字段的原因。

您可以使用数据 table 克隆,这样您将拥有深拷贝。

DataTable dt = ...
DataTable cloneDt = dt.Clone();

DataRow row = cloneDt.Rows[number];

dt.Rows.Clear();
dt.Rows.Add(row);

这样您的原始数据 table 将只包含选定的行。