C# 克隆或复制第一个对象并插入到同一列表中
我有一个来自数据库的电话列表,我想克隆第一个条目并将其插入同一个列表(更新的条目)C# 克隆或复制第一个对象并插入到同一列表中,c#,.net,C#,.net,我有一个来自数据库的电话列表,我想克隆第一个条目并将其插入同一个列表(更新的条目) 类是通过引用调用的,因此,如果更改该值,也会更改第一个成员。你可以克隆电话,但是你应该实现ICLoNabl接口,只考虑这个链接以及 类是通过引用调用的,因此,如果更改该值,也会更改第一个成员。你可以克隆电话,但是你应该实现ICLoNabl接口,只考虑这个链接以及 这是因为您正在编辑同一个实例。您必须创建一个新对象,然后设置属性: // this is already ok: var obj = p.FirstOr
类是通过引用调用的,因此,如果更改该值,也会更改第一个成员。你可以克隆电话,但是你应该实现ICLoNabl接口,只考虑这个链接以及
类是通过引用调用的,因此,如果更改该值,也会更改第一个成员。你可以克隆电话,但是你应该实现ICLoNabl接口,只考虑这个链接以及
这是因为您正在编辑同一个实例。您必须创建一个新对象,然后设置属性:
// this is already ok:
var obj = p.FirstOrDefault();
var t = new Phones();
// don't do this:
// t = obj;
// copy properties:
t.ID = obj.ID;
t.Phone = obj.Phone
t.isChild = obj.isChild
// add to list
p.Add(t);
不过,最好是实现该代码并将其放入
Clone()
方法中(请参见Peyman的答案)。这是因为您正在编辑同一个实例。您必须创建一个新对象,然后设置属性:
// this is already ok:
var obj = p.FirstOrDefault();
var t = new Phones();
// don't do this:
// t = obj;
// copy properties:
t.ID = obj.ID;
t.Phone = obj.Phone
t.isChild = obj.isChild
// add to list
p.Add(t);
不过,您最好实现该代码并将其放入Clone()
方法中(参见Peyman的答案)
仅为新对象obj指定一个p的引用
t = obj;
做同样的事情。对t
所做的任何更改都将更新obj
和p
,因为它们实际上只是对同一对象的引用
t.ID = obj.ID;
t.Phone = obj.Phone;
将obj
(或p
)的每个属性的值复制到t
,而不是将引用指定给同一对象
t.ID = obj.ID;
t.Phone = obj.Phone;
仅为新对象obj指定一个p的引用
t = obj;
做同样的事情。对t
所做的任何更改都将更新obj
和p
,因为它们实际上只是对同一对象的引用
t.ID = obj.ID;
t.Phone = obj.Phone;
将obj
(或p
)的每个属性的值复制到t
,而不是将引用指定给同一对象
t.ID = obj.ID;
t.Phone = obj.Phone;
我没有意识到这种可能性。美好的在我最终找到答案之前,我也没有注意到所有其他的答案。我没有意识到这种可能性。美好的在我最终找到答案之前,我也没有注意到所有其他的答案。谢谢你,我使用了你的方法来处理我当前的场景。但我会把答案告诉佩曼。谢谢你,我使用了你的方法来处理我当前的场景。但我会把答案告诉佩曼。