在 C# 中的 Datatable 类中, Clone 方法和 Copy 方法都可以用来复制当前的 DataTable 对象, 但 DataTable 类中的 Clone 方法和 Copy 方法还是有区别的, Clone 方法只复制结构信息, 包括所有 DataTable 架构和约束, 但 Copy 方法除了复制结构信息之外, 还复制 DataTable 的表格行数据信息.
DataTable.Clone 方法: 克隆 DataTable 的结构, 包括所有 DataTable 架构和约束.
DataTable.Copy 方法: 复制该 DataTable 的结构和数据.
针对于 DataTable 类中的 Copy 方法和 Clone 方法, 举例如下:
- DataTable dataDt = new DataTable();
- dataDt.Columns.Add(new DataColumn() { ColumnName = "Name" });
- dataDt.Columns.Add(new DataColumn() { ColumnName = "Id" });
- dataDt.Columns.Add(new DataColumn() { ColumnName = "Memo", DataType=typeof(String) });
- DataRow newRow = dataDt.NewRow();
- newRow["Name"] = "李四";
- newRow["Id"] = 22;
- newRow["Memo"] = "后续新增";
- dataDt.Rows.Add(newRow);
- DataRow inserDataRow = dataDt.NewRow();
- inserDataRow["Name"] = "王五";
- inserDataRow["Id"] = 23;
- inserDataRow["Memo"] = "第一行";
- dataDt.Rows.InsertAt(inserDataRow, 0);
- var newDt1 = dataDt.Clone();
- var newDt2 = dataDt.Copy();
从程序运行结果来看, newDt1 和 newDt2 的结构信息一致无差别, 但 newDt1 的数据行为 0, 而 newDt2 的数据行为 2, 并且 newDt2 中的数据与 dataDt 表格数据一致.
备注: 原文转载自博主个人站 IT 技术小趣屋 http://www.50bit.cn/ , 原文链接为 C# 的 DataTable 类 Clone 及 Copy 方法的区别_IT 技术小趣屋 https://www.50bit.cn/News/Index/6478.html .
博主个人技术交流群: 960640092, 博主微信公众号如下:
来源: http://www.bubuko.com/infodetail-3134409.html