ArrayList albuff = new System.Collections.ArrayList(); byte[] tmp; byte[] tmp2; byte[] result; int length = 10; // Number of byte needed tmp = (byte[]) albuff[0]; // Get the buffer line 0 Array.Copy(tmp,0,result, lengthat, length - lengthat); // Copy into result what I needed from buffer tmp2 = new byte[tmp.Length-(length - lengthat)]; // Create replacement for the ArrayList Array.Copy(tmp,length - lengthat,tmp2,0,tmp2.Length); // Get the rest of content not requested albuff[0] = tmp2; // Copy rest of content into the first line of ArrayList