2011-02-06 50 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]));