Copy byte array to another byte array in C#

86,080

Solution 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();

Solution 2

Array1.CopyTo(Array2, 0);

MSDN

Share:
86,080
acoder
Author by

acoder

Updated on March 26, 2020

Comments

  • acoder
    acoder about 4 years

    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);