我需要从一个字节数组中获取字节,从某个索引开始并持续一定长度(4)。我怎么能得到这个?
注意:我不想使用Array.copy子,因为它不是一个函数。我需要把它放在Sub MySub(
[参数为byte()] the_function_I_Need(Array, index, length))
之类的内容中。
答案 0 :(得分:3)
类似的东西:
Dim portion As Byte() = New Byte(length - 1) {}
Array.Copy(originalArray, index, portion, 0, length)
“ - 1”是因为VB取最后一个元素索引而不是大小。
编辑:我错过了一点不想使用Array.Copy
。 (当我发布答案时,或者你是在五分钟内“宽限期”编辑的吗?)
如果你真的需要,只需将它包装成一个方法。虽然有使用LINQ等的替代方案,但如果你真的想要一个新阵列,这将是最有效的方法。
如果您乐意在现有阵列周围使用包装器,那么还有ArraySegment(Of T)
- 但这不是一回事。
答案 1 :(得分:0)
Private Function the_function_you_need(ByVal arr As Byte(), ByVal ix As Integer, _
ByVal len As Integer) As Byte()
Dim arr2 As Byte() = New Byte(len - 1)
Array.Copy(arr, ix, arr2, 0, len)
Return arr2
End Function