将元素从List <byte>复制到另一个List <byte>进行深层复制

时间:2018-05-07 09:51:37

标签: c# deep-copy

我正在使用.NET Framework 4.7开发一个C#库。

我有两个List<byte>,我想将其中一个元素复制到另一个元素中。

我想重用列表,所以当我必须将一个列表的内容复制到另一个列表时,我不想创建一个新列表。

List<byte> list1 = new List<byte>() { 1, 2, 3, 4, 5, 6 };
List<byte> list2 = new List<byte>() { 7, 8, 9, 10, 11, 12 };

如果我想将list2的内容复制到list1,如果我想将list1的内容替换为{{1}的内容,我该怎么办? }?

我想复制值,而不是复制对list2中值的引用。如果我修改list2中的值,我不希望在list2中进行修改。

我没有找到任何在list1中执行深层复制的方法。我认为我可以使用的只有AddRange,但我没有找到关于此方法是否执行深度或吞咽副本的任何参考。

如果我想将List<T>的内容替换为执行深层复制的list1内容,我该怎么办?

1 个答案:

答案 0 :(得分:4)

byte值类型。因此,如果您复制它们,它们将独立于原始值。这里没有涉及参考。如果列表仅包含byte值,则术语“深层复制”没有任何意义。

是的,要将list2的元素复制到list1,您只需执行

list1.AddRange(list2);

如果您不想保留之前的内容,可能需要list1.Clear()