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

Copy elements from List<byte> to another List<byte> doing a 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的内容替换成[=]的内容怎么办14=]?

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

我在List<T>中没有找到任何进行深拷贝的方法。我认为我唯一可以使用的是 AddRange 但我还没有找到任何关于此方法是否进行深度复制或吞噬复制的参考资料。

做深拷贝想把list1的内容替换成list2的内容怎么办?

byte 是一个 值类型 。因此,如果您复制它们,它们将独立于原始值。这里不涉及参考文献。如果列表仅包含 byte 个值,则术语 "deep-copy" 没有任何意义。

所以是的,要将 list2 的元素复制到 list1 中,您可以简单地执行

list1.AddRange(list2);

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