Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.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# - Fatal编程技术网

C# 从对象分离列表

C# 从对象分离列表,c#,C#,早上好 我注意到,当您将列表作为参数指定给对象,然后对其进行更改时,对象的参数也会更改其值 我想知道如何避免这种情况,以及如何在不影响我的对象的情况下删除我的列表 重建: List<string> images = new List<string> { "1", "2", "3" };

早上好

我注意到,当您将列表作为参数指定给对象,然后对其进行更改时,对象的参数也会更改其值

我想知道如何避免这种情况,以及如何在不影响我的对象的情况下删除我的列表

重建:

            List<string> images = new List<string>
            {
                "1",
                "2",
                "3"
            };

            Message messageA = new Message(objet, rtfMessage, images, date_de_publication, texteEtat, couleurEtat);
            // messageA.images = 1 , 2 , 3

            images.Clear();
            // messageA.images = new List<string>()

您可以创建列表的克隆并将其作为参数传递。比如说,

var clonedImage = images.Select(item => (string)item.Clone()).ToList();
现在您可以将克隆作为

Message messageA = new Message(objet, rtfMessage, clonedImage , date_de_publication, texteEtat, couleurEtat);
请喜欢下面的内容

new List<string>(images)

您必须为创建列表的副本,查看此线程您必须将该项添加到其他父项以防止其被删除。如果一个孩子链接到多个家长,则该孩子不会被删除。请检查我的答案谢谢您的回答,但不,我所说的不是答案,也没有优化,我正在寻找其他方法。
new List<string>(images)
List<string> images = new List<string>
{
     "1",
     "2",
     "3"
};

Message messageA = new Message(objet, rtfMessage, new List<string>(images), date_de_publication, texteEtat, couleurEtat);
// messageA.images = 1 , 2 , 3

images.Clear();
// messageA.images = new List<string>()