我有两个清单。当我将List1分配给List2并更新List1时,List2也会自动更新。 List2不应该更新。为什么会这样?

这是我的代码:

public List<TrialBalance> TBal { get; set; }
public List<TrialBalance> PrevTBal { get; private set; }

if (this.PrevTBal == null)
{
    this.PrevTBal = this.TBal;
}

for (int x = 0; x < this.TBal.Count; x++)
{
    this.TBal[x].Balance = this.TBal[x].Balance + adjustments;
}

最佳答案

您仅分配引用,而不创建列表或列表中项目的副本。

您应该创建一个新列表并将所有项目添加到其中。

 this.PrevTBal = new List<TrialBalance>(this.TBal.Select(b => clone(b));

关于c# - 将列表分配给另一个列表之前的列表会自动更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20694397/

10-11 17:03