Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.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语言克隆列表#_C#_List_Clone - Fatal编程技术网

C# 用C语言克隆列表#

C# 用C语言克隆列表#,c#,list,clone,C#,List,Clone,可能重复: 嘿,我一直在尝试克隆一个列表,到目前为止,我找到了这个函数 addRange,但我很确定它不会克隆列表中的对象,而是对列表进行浅层复制,我想知道如何克隆列表 提前感谢。您需要解析列表并为每个项目创建一个新对象,然后新项目将其添加到新列表。您需要解析列表并为每个项目创建一个新对象,然后新项目将其添加到新列表。要克隆列表,必须克隆每个单独的项目。如果存在用于item类的Clone()的有用实现,则这是一个使用LINQ的单行程序: List<MyType> lstCloned

可能重复:

嘿,我一直在尝试克隆一个列表,到目前为止,我找到了这个函数 addRange,但我很确定它不会克隆列表中的对象,而是对列表进行浅层复制,我想知道如何克隆列表
提前感谢。

您需要解析列表并为每个项目创建一个新对象,然后新项目将其添加到新列表。

您需要解析列表并为每个项目创建一个新对象,然后新项目将其添加到新列表。

要克隆列表,必须克隆每个单独的项目。如果存在用于item类的Clone()的有用实现,则这是一个使用LINQ的单行程序:

List<MyType> lstCloned = lstOriginal.Select(i => i.Clone()).ToList();
List lstCloned=lstroiginal.Select(i=>i.Clone()).ToList();

要克隆列表,必须克隆每个单独的项目。如果存在用于item类的Clone()的有用实现,则这是一个使用LINQ的单行程序:

List<MyType> lstCloned = lstOriginal.Select(i => i.Clone()).ToList();
List lstCloned=lstroiginal.Select(i=>i.Clone()).ToList();

AddRange,更一般地说,对列表中包含的对象的所有操作只克隆对这些对象的引用。要克隆对象本身,应在对象级别本身处理副本

“克隆列表”是什么意思?克隆对象?您可以在每个对象上显式地实现它(例如通过实现IClonable接口),或者使用反射进行一般实现


查找“ICloneable”、“deep cloning”或“deep copy”,了解获得预期结果的不同方法的更多信息。

AddRange,更一般地说,列表中包含的对象上的所有操作仅克隆对这些对象的引用。要克隆对象本身,应在对象级别本身处理副本

“克隆列表”是什么意思?克隆对象?您可以在每个对象上显式地实现它(例如通过实现IClonable接口),或者使用反射进行一般实现

查找“iClonable”、“deep cloning”或“deep copy”,了解获得预期结果的不同方法的更多信息。

请参阅