Click to See Complete Forum and Search --> : Isolate valid Data in byte[] [C#]


Shaitan00
March 6th, 2005, 02:03 AM
--Using [VS C#.NET]--

Given a byte array of size 64 (baBuff[64]), this is used as a buffer to store incomming data.
Most of the time the buffers capacity is not completly used, however I know the exact length of valid data in the buffer [int DataPointer = length of valid Data]

Thing is I am trying to copy the valid data in my baBuff into a larger byte[] message I am creating, I don't want to be stuck coping over the entire 64bytes everytime.
Currently I am using the following code:

:: CODE ::

byte[] baTemp = new byte[DataPointer];
for (int i=0; i<nLen; i++)
{
baTemp[i] = baBuff[i];
}

// Load Raw Data
baBuff.CopyTo(baData, 5);


Is there a better way to do this? Can I access the byte[] using something like substring?
There has to be a nicer method... any clues?

darwen
March 7th, 2005, 02:13 AM
Firstly, CopyTo isn't the most efficient way of doing this. CopyTo is a member of Array and has loads of type checking etc in it. You're better off using Buffer.BlockCopy to do this.

And no, if you're copying from a small array to a large array there's no way of doing this other than using BlockCopy.

Darwen.