C# 在PipeReader中查找字节[]

C# 在PipeReader中查找字节[],c#,C#,PipeReader.ReadAsync返回一个ReadResult对象,该对象又包含一个Buffer属性,该属性返回一个ReadOnlySequence对象 这些数据将用于解析来自设备的消息,每条消息都有一个标头,该标头将与缓冲区中的字节相匹配,以了解消息从何处开始,以及创建何种类型来解析消息本身 问题是,似乎没有任何好的方法可以从只读序列中实现这一点,而且关于它的信息也不多 可以枚举字节(它有一个GetEnumerator),但在枚举之后,我必须手动跟踪用于知道缓冲区中位置的字节 还有一个

PipeReader.ReadAsync
返回一个
ReadResult
对象,该对象又包含一个
Buffer
属性,该属性返回一个
ReadOnlySequence
对象

这些数据将用于解析来自设备的消息,每条消息都有一个标头,该标头将与缓冲区中的字节相匹配,以了解消息从何处开始,以及创建何种类型来解析消息本身

问题是,似乎没有任何好的方法可以从
只读序列
中实现这一点,而且关于它的信息也不多

  • 可以枚举字节(它有一个
    GetEnumerator
    ),但在枚举之后,我必须手动跟踪用于知道缓冲区中位置的字节
  • 还有一个
    PositionOf
    扩展名,但是它可以找到一个字节的位置,所以它看起来并不比检查循环中的每个字节有多大优势

有没有我缺少的扩展方法?这完全是以另一种方式完成的吗?

一个可行的解决方案是复制修改后的扩展PositionOf和PositionOf multisegment in

出于好奇,您提到“数据将用于解析来自设备的消息”您是如何接收该数据的?通过插座?或者其他方式?目前是通过串行端口,但通常这些设备也至少支持telnet/raw tcp