从VB.NET中的数组函数中获取字节

时间:2010-01-05 19:52:14

标签: .net vb.net arrays byte

我需要从一个字节数组中获取字节,从某个索引开始并持续一定长度(4)。我怎么能得到这个?

注意:我不想使用Array.copy子,因为它不是一个函数。我需要把它放在Sub MySub( [参数为byte()] the_function_I_Need(Array, index, length))之类的内容中。

2 个答案:

答案 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