C#,如何将字节数组减半?

JL.*_*JL. 1 c#

我有一个像这样定义的字节数组

byte[] fileContents = File.ReadAllBytes(zfoFileName);
Run Code Online (Sandbox Code Playgroud)

如何获取fileContents字节数组的前1/2?

换句话说,如果数组的上限是10,我希望新的字节数组具有fileContents的前5个值.

提前致谢

Luk*_*keH 7

byte[] half = new byte[fileContents.Length / 2];
Array.Copy(fileContents, half, half.Length);
Run Code Online (Sandbox Code Playgroud)


Mar*_*ell 6

Array.Resize(ref fileContents, fileContents.Length / 2);
Run Code Online (Sandbox Code Playgroud)

不过,最好只在第一时间阅读上半部分.


Yur*_*ich 5

var firstHalf = fileContents.Take(fileContents.Length / 2).ToArray();
Run Code Online (Sandbox Code Playgroud)

  • 这可能是我能想到的最昂贵的方式...对于建议的10个字节很好,但对于10MB? (2认同)

And*_*rey 5

为什么不从文件中顺序读取字节?你只能读一半.你做了不必要的操作.