在C#中以性能方式复制位的最佳方法

时间:2016-04-19 15:04:26

标签: c# performance bit-manipulation bytearray

C#中,bitInt复制到byte array的最快方法是什么?

我有几个int,我需要将bit s串行复制(有时是全部和有些)s byte[] ...

我需要让流程尽可能高效(例如,避免在流程中创建新的byte array,因为我理解BitConverter会这样做。)

1 个答案:

答案 0 :(得分:3)

避免在每次调用时创建新byte[]数组的一种方法是在BinaryWriter之上创建MemoryStream,将整数写入其中,然后在以下处收集所有结果一次访问MemoryStream的缓冲区:

var buf = new byte[400];
using (var ms = new MemoryStream(buf))
using (var bw = new BinaryWriter(ms)) {
    for (int i = 0 ; i != 100 ; i++) {
        bw.Write(2*i+3);
    }
}
// At this point buf contains the bytes of 100 ints