我正在使用.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
内容,我该怎么办?
答案 0 :(得分:4)
byte
是值类型。因此,如果您复制它们,它们将独立于原始值。这里没有涉及参考。如果列表仅包含byte
值,则术语“深层复制”没有任何意义。
是的,要将list2
的元素复制到list1
,您只需执行
list1.AddRange(list2);
如果您不想保留之前的内容,可能需要list1.Clear()
。