Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 克隆或复制第一个对象并插入到同一列表中_C#_.net - Fatal编程技术网

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;

我没有意识到这种可能性。美好的在我最终找到答案之前,我也没有注意到所有其他的答案。我没有意识到这种可能性。美好的在我最终找到答案之前,我也没有注意到所有其他的答案。谢谢你,我使用了你的方法来处理我当前的场景。但我会把答案告诉佩曼。谢谢你,我使用了你的方法来处理我当前的场景。但我会把答案告诉佩曼。