【转载】C#的DataTable类Clone及Copy方法的区别

在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技术小趣屋,原文链接为C#的DataTable类Clone及Copy方法的区别_IT技术小趣屋

博主个人技术交流群:960640092,博主微信公众号如下:

【转载】C#的DataTable类Clone及Copy方法的区别