将字节数组(未知大小)拆分为具有剩余部分的块

时间:2016-04-03 06:42:57

标签: c# arrays vb.net split

我有一个大小未知的字节数组,我希望将每四个字节转换为一个整数。问题是未知的大小,因为这样的东西不起作用:

Private Sub(ByVal list() as Byte)
For i = 0 To list.Count - 1 Step 4

Next

如果大小不能被4分割,它将导致异常。 那么如何将字节数组分成四个字节的块?

这是我目前的尝试,但它会导致异常。

 Public Function MakeByteChunks(ByVal pByte() As Byte, ByVal pSize As Integer) As List(Of Byte())
    Dim chunkList As New List(Of Byte())
    For i = 0 To pByte.Count - 1
        Dim tmpchunkList(pSize) As Byte
        Array.Copy(pByte, i, tmpchunkList, 0, pSize)
        chunkList.Add(tmpchunkList)
    Next
    Return chunkList
End Function

当我试图将其转换为整数时:

 Dim splittedArray = MakeByteChunks(list, 1)
        For i = 0 To splittedArray.Count - 1

Dim Value = BitConverter.ToInt32(splittedArray(i), 0)})              
        Next

1 个答案:

答案 0 :(得分:1)

如果问题是最后一个可以短于4的块,就像这样做

Private Sub(ByVal list() as Byte)
For i = 0 To (list.Count - 3) - 1 Step 4

Next