在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,博主微信公众号如下:
黄山市民网:https://www.huangshanshimin.com/