私はVS2012、vb.netを使用しています。
タイプ t のリストがあり、これを別のリストにコピーしたい場合、次のコードが機能します。
list2.Clear()
list2.AddRange(list1)
ただし、t の最初のリストに t2 型の別のリストがある場合、上記のコードは機能しません。
t のリストの内容を、t のリストの中に t2 の別のリストがある別のリストにコピーする方法を教えてください。
ありがとう
私は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
。内部リストに整数の代わりに参照型オブジェクトがある場合は、個々のオブジェクトを複製してディープ コピーを行う必要があることに注意してください。