如何复制泛型集合的一个元素

时间:2011-02-06 14:48:37

标签: c#

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

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

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

1 个答案:

答案 0 :(得分:2)

添加时需要创建new对象。

这可以通过多种方式完成 - 一种辅助方法,它接收您的类型的对象(CalculationResult)并返回一个全新的对象。

也许有一个构造函数重载可以做到这一点。

有很多方法可以实现这样的功能 - 实现ICloneable并让Clone方法返回一个新对象。

例如,如果要创建构造函数重载,则可以使用它:

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