我需要复制泛型集合的一个元素并将其添加到列表中。类似的东西:
private List<CalculationResult> cantileverResults = new List<CalculationResult>();
cantileverResults.Add(cantileverResults[previousIndex]);
此解决方案的问题在于,当我修改新元素时,previousIndex元素也会更改。我相信这是因为它们是引用类型,而不是值类型。我怎样才能将信息从一个元素复制(克隆?)到另一个元素而不会相互影响?
答案 0 :(得分:2)
添加时需要创建new
对象。
这可以通过多种方式完成 - 一种辅助方法,它接收您的类型的对象(CalculationResult
)并返回一个全新的对象。
也许有一个构造函数重载可以做到这一点。
有很多方法可以实现这样的功能 - 实现ICloneable
并让Clone
方法返回一个新对象。
例如,如果要创建构造函数重载,则可以使用它:
cantileverResults.Add(new CalculationResult(cantileverResults[previousIndex]));