-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 に答える