【问题标题】:how to reference a range of bytes at an arbitrary position within VB.Net byte array如何在VB.Net字节数组中的任意位置引用一系列字节
【发布时间】:2020-07-25 14:36:25
【问题描述】:

如何引用从字节数组中特定位置开始的一系列元素?

我正在调用一个接收字节块的函数(见下文),并且我需要将每个新块存储在数组中的下一个位置(packet_buffer)中,位于前一个块位置(total_transferred_bytes_so_far)之后。

显然packet_buffer( total_transferred_bytes_so_far ) 不起作用。

MOSI_count_bytes = BeagleApi.bg_spi_read_bit_timing(handle, status, _
                             time_sop, time_duration, _
                             time_dataoffset, _
                             remaining_to_read, packet_buffer( total_transferred_bytes_so_far ), _
                             remaining_to_read, data_miso, _
                             timing_size, timing)

找不到任何有关如何执行此操作的信息。

【问题讨论】:

标签: arrays .net vb.net


【解决方案1】:

如果您想将元素从一个数组复制到另一个数组,请调用Array.Copy

Array.Copy(sourceArray, 0, destinationArray, startIndex, sourceArray.Length)

这会将每个元素从sourceArray 复制到destinationArray,从startIndex 开始。

【讨论】:

  • 不想复制。想要有效地将引用(即指针)传递给函数。
  • 您如何准确地接收一大块字节而不是一个数组,然后必须将其复制到另一个数组中?
【解决方案2】:

这可能是上述@jmcilhinney 有效答案的替代方案:

Private Function GetRange(source As Byte(), start As Integer, length As Integer) As Byte()
    Return (From element In source Skip start Take length).ToArray
End Function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    • 2012-05-20
    • 1970-01-01
    相关资源
    最近更新 更多