Layout de estrutura adequado do registro compactado do delphi

Estou convertendo um aplicativo delphi para c #. Há vários registros compactados e, de acordo com uma pergunta semelhante que fiz há algumas semanas, seria melhor converter para aulas. No entanto, disseram-me que preciso convertê-los em estruturas e que posso usar alguma ajuda. Eu vou estar usando umBinaryReader para ler de um arquivo e atribuir valores aos campos dentro das estruturas.

* Observe que o arquivo que eu estou lendo foi criado usando Delphi e registros compactados.

Aqui está um exemplo de estrutura:

Delphi:

Testrec = packed record
    now: TDateTime;
    MinLat: longint;
    MinLong: longint;
    Firsttime: TDateTime;
    MinAlt: single;
    MinFirst: single;
    MinDepth: single;
    MinSpeed: single;
    MinBot: single;
    res3: single;
    res4: single;
    res5: single;
    res6: single;
    MaxLat: longint;
    MaxLong: longint;
    Lasttime: TDateTime;
    MaxAlt: single;
    MaxFirst: single;
    MaxDepth: single;
    MaxSpeed: single;
    MaxBot: single;
    res9: single;
    res10: single;
    res11: single;
    res12: single;
    DataFlags: longint;
    ReviewFlags: longint;
    res13: longint;
    FirstPost: longint;
end;

Aqui está minha versão do C #:

public struct Testrec
{
    double now;
    int MinLat;
    int MinLong;
    double Firsttime;
    float MinAlt;
    float MinFirst;
    float MinDepth;
    float MinSpeed;
    float MinBot;
    float res3;
    float res4;
    float res5;
    float res6;
    int MaxLat;
    int MaxLong;
    double Lasttime;
    float MaxAlt;
    float MaxFirst;
    float MaxDepth;
    float MaxSpeed;
    float MaxBot;
    float res9;
    float res10;
    float res11;
    float res12;
    int DataFlags;
    int ReviewFlags;
    int res13;
    int FirstPost;
 }

Preciso fazer umaStructLayout, SizeeCharSet?

Edit: Aqui está o código delphi relevante sobre a leitura do arquivo binário:

Testrec Header;
HeaderSize = 128;

RampStream:=TFileStream.Create(FilePath,fmOpenReadWrite OR fmShareExclusive );

RampStream.Read(Header,HeaderSize);
StartTime:=Header.Firsttime;
EndTime:=Header.Lasttime;

Aqui está como eu configuro meu Leitor Binário:

RampStream = new BinaryReader(new FileStream(RampName, FileMode.Open, FileAccess.ReadWrite, FileShare.None));

questionAnswers(1)

yourAnswerToTheQuestion