【发布时间】:2019-12-27 09:01:56
【问题描述】:
我正在对 System.IO.Pipelines 进行一些试验,但无法找到转换或使用返回的 ReadOnlySequence 对象的最佳方法。
我能够用它做任何事情的唯一方法是将它转换为一个数组,然后执行普通的字节函数,例如:
byte[] byteArray = new byte[]{ 0x01, 0x02, 0x03, 0x50, 0x99 };
ReadOnlySequence<byte> buffer = new ReadOnlySequence<byte>(byteArray);
对 Buffer 进行操作:
var theArray = buffer.ToArray();
// perform normal byte array operations
如果不转换为数组,我不知道该怎么做:
foreach(byte theByte in buffer)
// do something with the byte
测试缓冲区中的特定字节
if(buffer[0] == 0x11)
...
将字节缓冲区复制到结构
Marshal.Copy(
是通过将 ReadOnlySequence 转回数组来访问其内容的唯一方法吗?
【问题讨论】:
-
你可以尝试使用
SequenceReader:stevejgordon.co.uk/an-introduction-to-sequencereader -
请先检查docs.microsoft.com/en-us/dotnet/standard/io/… 并确定您要完成的方案。那里有各种推荐的和有问题的代码示例。也许您可以为您的问题添加更多详细信息。
-
我已经读过了。我展示了我想做的三件事。第一个已经回答(虽然答案是错误的)。鉴于第一个的答案,第二个可能无关紧要。第三个仍然很出色。