使用 VB.Net 将两个字节数组附加到一个字节数组
Posted
技术标签:
【中文标题】使用 VB.Net 将两个字节数组附加到一个字节数组【英文标题】:Append two byte arrays to one byte array using VB.Net 【发布时间】:2018-08-22 01:27:09 【问题描述】:我想使用 VB.NET 将两个字节附加到一个字节
这是我的代码,
Dim bytes(5) As Byte
bytes(0) = devid 'variable byte
bytes(1) = &H3
bytes(2) = x1 'variable byte
bytes(3) = x2 'variable byte
bytes(4) = &H0
bytes(5) = &H1
Dim bytescrc() As Byte = CRC(bytes) ' call to crc funtion and store 2 bytes output is &HFF, &HB5
Dim bytesful() As Byte = bytes, bytescrc
错误消息是 'Byte()' 类型的值无法转换为 'Byte'。
如何将bytes
6 字节数组和bytescrc
2 字节数组追加到bytesful
字节数组。
【问题讨论】:
【参考方案1】:有很多具体的方法可以做到这一点,但是一点 LINQ 可以很容易地做到这一点:
Dim bytesful() As Byte = bytes.Concat(bytescrc).ToArray()
Concat
将通过连接两个 IEnumerable(Of T)
对象创建单个 IEnumerable(Of T)
,ToArray
从该单个列表创建一个新数组。
【讨论】:
【参考方案2】:将Array.CopyTo() 方法添加到jmcilhinney
提出的方法中,以防性能需要考虑。
在本例中,这无关紧要,但如果元素数量增加(以千计)并且操作迭代,结果可能会大不相同。
Dim bytesful((bytes.Length + bytescrc.Length) - 1) As Byte
bytes.CopyTo(bytesful, 0)
bytescrc.CopyTo(bytesful, bytes.Length)
Enumerable.Concat() 的优点是它更可读,您可以在一行中添加更多数组:
Dim bytesful() As Byte = bytes.Concat(bytescrc).Concat(SomethingElse).ToArray()
【讨论】:
以上是关于使用 VB.Net 将两个字节数组附加到一个字节数组的主要内容,如果未能解决你的问题,请参考以下文章
vb.net中的C ++ DLL Wrapper传递字节数组的字节数组?