本文浅析了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 后面的集合不可更改
这个时候应该我想到了,应该在遍历之前复制一份