我得到了一个List<List<CustomClass>>
,其中CustomClass
是一个引用类型。
我需要把这个矩阵复制成一个新的。因为我需要一个深度复制,所以矩阵中的每个customClass对象都必须复制到新矩阵中。
你怎么能有效地做到这一点?
最佳答案
对于实现ICloneable的CustomClass来说,这并不十分困难:
var myList = new List<List<CustomClass>>();
//populate myList
var clonedList = new List<List<CustomClass>>();
//here's the beef
foreach(var sublist in myList)
{
var newSubList = new List<CustomClass>();
clonedList.Add(newSubList);
foreach(var item in sublist)
newSublist.Add((CustomClass)(item.Clone()));
}
如果您不想实现icloneable,可以使用任何“deepcopy”类型的方法以类似的方式实现(不过,我建议使用内置接口)。