Что-то вроде:
Dim portion As Byte() = New Byte(length - 1) {}
Array.Copy(originalArray, index, portion, 0, length)
"- 1" из-за того, что VB принимает индекс последнего элемента, а не размер.
РЕДАКТИРОВАТЬ: я пропустил немного о нежелании использовать Array.Copy
. (Было ли это там, когда я опубликовал ответ, или вы редактировали его в течение пятиминутного «льготного периода»?)
Просто оберните это в метод, если вам действительно нужно. Хотя есть альтернативы, использующие LINQ и т. Д., Это будет наиболее эффективный способ сделать это, если вы действительно хотите новый массив.
Существует также ArraySegment(Of T)
, если вы готовы использовать оболочку для существующего массива - но это не одно и то же.