C# 即使克隆列表,列表中对象的参数也会更改
早上好 我制作了一个软件,从上面创建步骤,并将它们添加到一个通用列表中 这是我的密码:C# 即使克隆列表,列表中对象的参数也会更改,c#,list,C#,List,早上好 我制作了一个软件,从上面创建步骤,并将它们添加到一个通用列表中 这是我的密码: List<List<Crêpe>> Solutions = new List<List<Crêpe>>(); Solutions.Add(new List<Crêpe>(Ordre)); // 1. for (int i = NombreMax; i > 0; i--) {
List<List<Crêpe>> Solutions = new List<List<Crêpe>>();
Solutions.Add(new List<Crêpe>(Ordre)); // 1.
for (int i = NombreMax; i > 0; i--)
{
Ordre.Reverse(0, positionDuNombreAChercher); // 2.
for (int n = 0; n < positionDuNombreAChercher; n++)
{
Ordre[n].FaceCraméBienPlacé = !Ordre[n].FaceCraméBienPlacé; // 3.
}
Solutions.Add(new List<Crêpe>(Ordre));
}
你复制了名单,但你没有复制名单
要复制crêpe,可以在crêpe
类中编写GetCopy
方法:
public Crêpe GetCopy() => new Crêpe(Nombre, FaceCraméBienPlacé);
然后使用Select
创建每个Crêpe
的副本,然后使用ToList
创建新列表:
Solutions.Add(Ordre.Select(x => x.GetCopy()).ToList()); // 1.
您还应该更改外部循环中的最后一行。Ordre的代码在哪里?
Solutions.Add(Ordre.Select(x => x.GetCopy()).ToList()); // 1.