2011-02-06 49 views
0

我需要复制泛型集合的一个元素并将其添加到列表中。类似的东西:如何复制泛型集合的一个元素

private List<CalculationResult> cantileverResults = new List<CalculationResult>(); 
cantileverResults.Add(cantileverResults[previousIndex]); 

这个解决方案的问题是,当我修改新元素时,previousIndex元素也会改变。我相信这是因为它们是引用类型,而不是值类型。我如何才能将这些信息从一个元素复制(克隆)到另一个元素而又不会相互影响?

回答

2

添加时需要创建一个new对象。

这可以通过几种方式完成 - 一种帮助您获取类型对象的帮助方法(CalculationResult)并返回一个全新的方法。

也许有一个构造函数重载这样做。

有很多方法可以实现这样的事情 - 实施ICloneable并使Clone方法返回一个新的对象。

例如,如果您要创建一个构造函数重载,这是你如何使用它:

cantileverResults.Add(new CalculationResult(cantileverResults[previousIndex]));