在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,博主微信公众号如下: