浅析C#的复制和克隆

作者:shichen2014 时间:2022-08-30 15:27:13 

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

标签:C#,复制,克隆
0
投稿

猜你喜欢

  • Android 去掉状态栏的方法汇总

    2022-05-25 01:31:18
  • Android Studio 3.0中mipmap-anydpi-v26是什么东东

    2023-10-11 01:17:44
  • SpringBoot整合MyCat实现读写分离的方法

    2022-03-05 23:37:45
  • Android蓝牙通信聊天实现发送和接受功能

    2022-02-07 21:58:56
  • SpringMVC上传文件的两种方法

    2023-11-17 14:27:20
  • c# 编写一个轻量级的异步写日志的实用工具类(LogAsyncWriter)

    2021-11-23 01:56:14
  • MyBatis注解式开发映射语句详解

    2023-06-07 20:31:23
  • Android用PopupWindow实现自定义Dailog

    2023-11-03 13:34:57
  • 深入理解java中的null“类型”

    2022-07-28 00:41:20
  • SpringMVC Restful api接口实现的代码

    2023-11-29 12:34:27
  • C#实现将应用程序设置为开机启动的方法

    2023-06-04 05:59:26
  • Mybatis如何配置连接池

    2021-10-22 03:06:47
  • Java矩阵连乘问题(动态规划)算法实例分析

    2022-05-04 21:50:54
  • Java读取本地json文件及相应处理方法

    2023-10-16 16:37:34
  • Java中数组在内存中存放原理的讲解

    2022-12-10 03:48:35
  • SpringMVC深入讲解文件的上传下载实现

    2022-04-21 09:01:51
  • 解决Android studio3.6安装后gradle Download失败(构建不成功)

    2021-07-20 15:38:42
  • Java使用arthas修改日志级别详解

    2023-02-04 23:09:26
  • Android返回键功能的实现方法

    2021-10-01 12:54:53
  • JAVA如何调用Shell脚本

    2022-11-25 01:13:13
  • asp之家 软件编程 m.aspxhome.com