首页 新闻 会员 周边

两个list赋值后 变成相同的list

0
[已解决问题] 解决于 2020-02-07 23:49

实例化两个list
list<user> a=new list<user>
list<user> b=new list<user>

向a赋值以后,使用a向b赋值:
b.addrange(a)
或者
b=a.getrange(0,a.count)
或者
遍历a里的元素向b add

之后只要a的数据一改变,b里的数据也会同步改变,怎样能让b不跟随a同步变化

c#
昔牧的主页 昔牧 | 初学一级 | 园豆:24
提问于:2020-02-07 09:19
< >
分享
最佳答案
0

深拷贝吧,不懂可以百度下,如果不愿意那么做的话,那就a b 同时赋值,相互之间别有关系就成了,在给a添加对象时同时也给b添加上,这样你改a是不会影响b的,相互之间不影响

奖励园豆:5
sunkejava | 初学一级 |园豆:178 | 2020-02-07 11:53
其他回答(2)
1

这里是地址引用了,自然改的是同一个对象。可以通过序列化简单拷贝,复制一个出来。

lucika.zh | 园豆:62 (初学一级) | 2020-02-07 09:28
0

我认为你自己根本的问题可能没描述清楚,你意思是将a集合中元素添加到b中后,后续a中元素发生了改变,b不改变???如果是这样,是不是也就说明就首次将集合a中元素添加到b中,后续a中元素再发生变化,保证b中元素不发生改变。

Jeffcky | 园豆:2789 (老鸟四级) | 2020-02-07 20:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册