Converting an int[] to byte[] in C# Converting an int[] to byte[] in C# arrays arrays

Converting an int[] to byte[] in C#


If you want a bitwise copy, i.e. get 4 bytes out of one int, then use Buffer.BlockCopy:

byte[] result = new byte[intArray.Length * sizeof(int)];Buffer.BlockCopy(intArray, 0, result, 0, result.Length);

Don't use Array.Copy, because it will try to convert and not just copy. See the remarks on the MSDN page for more info.


Besides the accepted answer (which I am now using), an alternative one-liner for Linq lovers would be:

byte[] bytes = ints.SelectMany(BitConverter.GetBytes).ToArray(); 

I suppose, though, that it would be slower...


int[] ints = { 1, 2, 3, 4, 5, 6 };byte[] bytes = ints.Select(x => (byte)x).ToArray();