集合间的赋值被同时清空的问题

问题

创建一个集合 例如:List list1 为其填充内容后,在将其赋值到一个新集合 例如 List list2。当对 list1 进行清空时 list2 的值也会随之清空。

    List<int> list1 = new List<int> {1,2,3,4 };  //创建并填充集合
    List<int> list2; //定义 list2
    list2 = list1;  //将lsit1 赋值到 list2中
    list1.Clear();

原因

将 list1 赋值给 list2 的时候,实际并未将 list1 的内容复制 ,而是将 list1 的引用赋给了 list2。这意味着 list1 和 list2 指向同一个内存地址,修改一个集合会影响另一个集合。

解决方案

    List<int> list2 = list1.ToList(); // 创建 list1 的副本
    List<int> list2 = new List<int>(list1); // 创建 list1 的副本
posted @   拥有一个果园  阅读(1)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示