更新新的对象列表更新主列表

时间:2017-08-19 21:52:16

标签: c# linq clone

我有一个使用linq ForEach更新时获得的对象列表。问题是数据是用引用类型更新的。我想用值类型

更新它

我尝试克隆但是它没有工作(不确定我是否遵循了正确的程序)。

1 个答案:

答案 0 :(得分:1)

您的列表newSetRatioif条件中清空。如果该条件返回false,则它将包含上一次迭代的值。由于它在每次迭代中填充,在条件之外,每当条件返回false时,将添加assetSharingRatios中的所有项目,而不会先清除列表。因此,如果assetSharingRatios未更改且您的代码返回false,则newSetRatio将包含所有重复项。如果条件保持导致false,则newSetRatio中的项目将会增加三倍,依此类推。

另一点是你的最后一行代码contributePartnersData.assetSharingRatio = newSetRatio; 如果您修复了newSetRatio行为,则只要contributingPartnersData条件为assetSharingRatio,添加到if的最后一项就会获得新的false值。不确定这是否有意,看起来有点奇怪。这就是为什么最后三行代码超出'if`的原因?