-1

我正在使用 VS2012,vb.net。

如果我有一个类型为 t 的列表,并且我希望将其复制到另一个列表,则以下代码有效:

list2.Clear()
list2.AddRange(list1)

但是,如果 t 的第一个列表中有另一个类型为 t2 的列表,则上面的代码不起作用。

我可以帮忙将 t 列表的内容复制到另一个列表中,其中 t 列表中有另一个 t2 列表。

谢谢

4

1 回答 1

1
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。请注意,如果内部列表中有引用类型对象而不是整数,则还需要克隆每个单独的对象以进行深层复制。

于 2012-11-29T14:14:06.323 回答