我試圖做一個通用列表的深層副本,並想知道是否有任何其他方式,然後創建複製方法,並實際上每次複製一個成員。我有一個類,它看起來有點像這樣:列表的深層副本<T>
public class Data
{
private string comment;
public string Comment
{
get { return comment; }
set { comment = value; }
}
private List<double> traceData;
public List<double> TraceData
{
get { return traceData; }
set { traceData = value; }
}
}
而且我有上述數據的列表,即List<Data>
。我想要做的是將List的子集的跟蹤數據繪製到圖上,可能需要進行一些縮放或掃描數據。我顯然不需要在列表中繪製所有內容,因爲它們不適合屏幕。
我最初嘗試使用List.GetRange()
方法獲取列表的子集,但似乎List<double>
正在被淺拷貝而不是深拷貝。當我再次使用List.GetRange()獲取子集時,我得到先前修改過的數據,而不是其他地方檢索到的原始數據。
任何人都可以給我一個方向如何解決這個問題嗎?非常感謝。
Skeet編輯但不知道答案? (8-O – Brad 2010-11-19 16:02:03
也許我錯過了一些東西,但是什麼是「列表」的「深層複製」?它是一個數字列表,它不像Button類的列表或其他可能需要成員的列表被複制? –
CodingGorilla
2010-11-19 16:04:40
我認爲他意味着他想要對每個Data數據對象進行深層複製,這意味着他需要複製列表而不是複製引用。 – mquander 2010-11-19 16:08:07