我正在使用 .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 };
Run Code Online (Sandbox Code Playgroud)
如果我想的内容复制list2到list1,我有什么做的,如果我想替换的内容list1用的内容list2?
我想复制值,而不是复制对list2. 如果我修改了一个值,list2我不希望在list1.
我还没有找到任何在List<T>. 我认为我唯一可以使用的是AddRange但我还没有找到任何关于此方法是否执行深层或吞咽复制的参考。
如果我想list1用list2做深拷贝的内容替换 的内容,我该怎么做?
byte是一个值类型。因此,如果您复制它们,它们将独立于原始值。这里不涉及参考。如果列表仅包含byte值,则术语“深度复制”没有任何意义。
所以是的,将 的元素复制list2到list1你可以简单地做
list1.AddRange(list2);
Run Code Online (Sandbox Code Playgroud)
list1.Clear()如果您不想保留以前的内容,您可能想要之前。