C# 在C语言中将数据文件读入字节数组#

C# 在C语言中将数据文件读入字节数组#,c#,arrays,C#,Arrays,我试图将包含16位数字的大型数据文件读入多维数组,但我不确定C#中最快的方法。我还需要它来处理8位数字。在C++中,我使用了Frad(),它非常快,并将数据读入“MyLax[[,,] ],然后可以作为多维数组访问: numberRead = fread( myArray, sizeof(short), 19531250, stream ); 在C#中,我可以使用循环,但这非常慢 using (BinaryReader reader = new BinaryReader(File.OpenRea

我试图将包含16位数字的大型数据文件读入多维数组,但我不确定C#中最快的方法。我还需要它来处理8位数字。在C++中,我使用了Frad(),它非常快,并将数据读入“MyLax[[,,] ],然后可以作为多维数组访问:

numberRead = fread( myArray, sizeof(short), 19531250, stream );
在C#中,我可以使用循环,但这非常慢

using (BinaryReader reader = new BinaryReader(File.OpenRead(filepath)))
{
  for (int i = 0; i < 25; i++)
    for (int j = 0; j < 25; j++)
      for (int k = 0; k < 25; k++)
        for (int m = 0; m < 25; m++)
          for (int n = 0; n < 25; n++)
          {
            myArray[i, j, k, m, n] = reader.ReadInt16();
          }
}
使用(BinaryReader=newBinaryReader(File.OpenRead(filepath)))
{
对于(int i=0;i<25;i++)
对于(int j=0;j<25;j++)
对于(int k=0;k<25;k++)
对于(int m=0;m<25;m++)
对于(int n=0;n<25;n++)
{
myArray[i,j,k,m,n]=reader.ReadInt16();
}
}

是否有一种更快的方法将文件读入一个可以适应8位和16位数据的数组?

速度很慢,因为您不断地向文件系统请求少量数据。你最好先把整个文件一次读入内存