我有一个字节列表:
Public Function GenPackets()
Dim Stream As NetworkStream = ConnectionSocket.GetStream()
Dim DataList As New List(Of Byte())
Dim Data As Byte()
DataList.Add(IntegerToByte(My.Settings.BotUID))
' TO DO Stream.Write(Data, 0, 3)
Return Data
End Function
Run Code Online (Sandbox Code Playgroud)
如何将DataList其所有字节转换为单个Byte()以供使用Stream.Write?
无需转换您的数据,只需遍历列表:
For Each buffer As Byte() In Datalist
yourStream.Write(buffer)
Next
Run Code Online (Sandbox Code Playgroud)
这比首先连接所有单个数组以创建一个大数组要高效得多.
正如Konrad Rudolph已经写过的那样,您不需要压缩数据以便将其写入流中.
为了完整起见,您可以像这样展平数据列表
Dim dataList As New List(Of Byte())
Dim data As Byte()
data = dataList.SelectMany(Function(x) x).ToArray()
Run Code Online (Sandbox Code Playgroud)
或者使用LINQ语法
data = (From bytes In dataList From x In bytes Select x).ToArray()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6963 次 |
| 最近记录: |