Copy byte array to another byte array in C#

2020-02-11 18:08发布

问题:

There are two byte arrays which are populated with different values.

byte[] Array1 = new byte[5];
byte[] Array2 = new byte[5];

Then, I need Array1 to get exactly the same values as Array2.

By typing Array1 = Array2 I would just set references, this would not copy the values.

What might be the solution?

EDIT:

All answers are good and all solutions work. The code from the first solution looks visually more descriptive for my particular case.

Array1 = Array2.ToArray();

and

Array1.CopyTo(Array2, 0);

as well as

Buffer.BlockCopy(Array2, 0, Array1, 0, 5);

回答1:

One solution courtesy of Linq...

Array1 = Array2.ToArray();

EDIT: you do not need to allocate space for Array1 before using this Linq call. The allocation for Array1 is done within ToArray(). More complete example below

byte[] Array2 = new byte[5];
// set values for Array2
byte[] Array1 = Array2.ToArray();


回答2:

Array1.CopyTo(Array2, 0);

MSDN



标签: c# arrays