欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

浅析C#的复制和克隆

程序员文章站 2023-12-18 16:58:16
本文浅析了c#的复制和克隆技术,对于有需要的朋友可以参考下。 在c#中,用hashtable,datatable等实现复制和克隆,下面直接看例子: hashta...

本文浅析了c#的复制和克隆技术,对于有需要的朋友可以参考下。

在c#中,用hashtable,datatable等实现复制和克隆,下面直接看例子:

hashtable ht = null;
ht = new hashtable();
foreach(string s in ht)
{
//...
}
//上面遍历的时候需要修改hashtable中的键值,一般会报异常,提示您的集合已修改xxx什么的,因为foreach遍历的时候,in 后面的集合不可更改
//这个时候应该我想到了,应该在便利之前复制一份,
hashtable ht2 = new hashtable();
ht.copy(ht2,0);

以上代码能调试通过,但是问题又来了,当我们修改了ht2中了的键值之后,发现ht中的键值也修改了,显然这不是我想要的结果,然后略微思考,用了clone(),问题得以解决。

datatable同样,datatable dt2 = dt.copy()复制或者直接给值都是不可以的,同样会改变原来的datatble中的值

这里需要修改hashtable中的键值,一般会报异常,提示您的集合已修改xxx什么的,因为foreach遍历的时候,in 后面的集合不可更改
这个时候应该我想到了,应该在遍历之前复制一份

上一篇:

下一篇: