在 C#中,bit
从Int
复制到byte array
的最快方法是什么?
我有几个int
,我需要将bit
s串行复制(有时是全部和有些)s byte[]
...
我需要让流程尽可能高效(例如,避免在流程中创建新的byte array
,因为我理解BitConverter
会这样做。)
答案 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