我有下面的類生成層次樹結構列表<T>用出來的深克隆,其中T是IClonable
public class DynaTreeNode
{
#region---Property---
public string title { get; set; }
public string key { get; set; }
public object icon { get; set; }
List<DynaTreeNode> _children = new List<DynaTreeNode>();
public List<DynaTreeNode> children
{
get { return _children; }
set { _children = value; }
}
}
我也有DynaTreeNode列表
List<DynaTreeNode> wholeTree = new List<DynaTreeNode>();//originally from DB
現在我想克隆此列表收集到一個新的列表
待辦事項這我想使用
wholeTree.Select(i => i.Clone()).ToList();
在這種情況下,我需要實現IClonable接口到DynaTreeNode。但問題是IClonable不會做深層複製。從http://blogs.msdn.com/b/brada/archive/2003/04/09/49935.aspx
簡稱How do I clone a generic list in C#?
這個答案也使用IClonable。
如何克隆我的List與深拷貝?。
注意:我想所有的孩子(列表)也應該克隆。
我已經提到過,我看到這篇文章http://stackoverflow.com/questions/222598/how-do-i-clone-a-generic -list-in-c。這本身有一個靜態方法DeepClone和使用序列化的答案。但想知道除了序列化以外還有其他方法:) – 2013-02-22 06:48:32