c# - 对于不是从 0 开始的缓冲区,有没有更轻松的 GetBytes 方法?

标签 c# bytearray bitconverter

我必须处理项目中的原始字节,我基本上需要做这样的事情

byte[] ToBytes(){
  byte[] buffer=new byte[somelength];
  byte[] tmp;
  tmp=BitConverter.GetBytes(SomeShort);
  buffer[0]=tmp[0];
  buffer[1]=tmp[1];
  tmp=BitConverter.GetBytes(SomeOtherShort);
  buffer[2]=tmp[0];
  buffer[3]=tmp[1];
}

我觉得这是错误的,但我找不到更好的方法。有更容易的方法吗?

最佳答案

BinaryWriter 非常高效:

    byte[] ToBytes() {
        var ms = new MemoryStream(somelength);
        var bw = new BinaryWriter(ms);
        bw.Write(SomeShort);
        bw.Write(SomeOtherShort);
        return ms.ToArray();
    }

关于c# - 对于不是从 0 开始的缓冲区,有没有更轻松的 GetBytes 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2527018/

相关文章:

c# - 如何修复 Xamarin.Forms 条目附加属性 "Bleed Over"?

arrays - 如何在 Clojure 中初始化字节数组

c# - 关于 BitConverter 中的 "GetBytes"实现

c# - 在 xamarin.android 中获取 IoC 容器

c# - 从一个列表中删除另一个列表中的项目

c# socket接收字节数组长度

javascript - 如何将数组中的最后 4 个字节转换为整数?

c - sprintf 没有给出预期值

c# - 如何删除 GMap 中心位置上显示的加号 (+)?

asp.net - ASP.NET Streaming PDF字节流-如何设置文档标题?