我正在使用VS2012,vb.net。
如果我有一个 t 类型的列表,并且我希望将其复制到另一个列表,则以下代码有效:
list2.Clear()
list2.AddRange(list1)
但是,如果 t 的第一个列表内部有另一个 t2 类型的列表,则上面的代码不起作用。
我能否获得一些帮助,将 t 列表的内容复制到另一个列表,其中 t 列表包含另一个 t2 列表。
谢谢
However, if the first list of t has another list of type t2 inside it, this above code does not work.
它确实有效,但它是浅拷贝,而不是深拷贝。
假设您想对List(Of List(Of Integer))
进行深度复制。你可以这样做:
Dim list1 As List(Of List(Of Integer))
*Populate list 1*
Dim copy = list1.Select(Function(innerList) innerList.ToList).ToList
现在你必须独立列表,因为你用ToList
复制每个内部列表,也用ToList
复制外部列表。请注意,如果内部列表中有引用类型对象而不是整数,则还需要克隆每个单独的对象以执行深层复制。