我得到了一个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”类型的方法以类似的方式实现(不过,我建议使用内置接口)。

10-06 02:04