Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

441
Views
C# in-place cast `int[]` array to `byte[]` array

I have an array of some type (short[], int[], or similar base type). I want to send it through a stream, so I need it to be byte[]. The standard solution seems to be creating a new byte[] array, and use BitConverter. The problem with this approach is performance and memory usage - it requires allocating all new memory, copying into the new memory, and then writing the byte[] to the stream.

I very much want to use the original backing memory of the int[] array as a byte[] array so I can send it in-place. I am willing to enforce the requirement that the sending and receiving system must be the same endianness, for the sake of this very obvious and very significant performance difference.

Is there some way to treat an array of int[] or similar, as a byte[] in-place?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

If you can use Span<T> (.net core 3+):

void Send(int[] data)
{
    ReadOnlySpan<byte> byteRef = MemoryMarshal.AsBytes(data.AsSpan());
    _stream.Write(byteRef);
}
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!