The output you wrote in the bottom has 3 sections.
The left section is simply the offset of the bytes in hex.
The middle section are the bytes in hex.
The right section is the bytes in ASCII.
For the left section you simply need to convert the offset of the first byte in the row to hex.
For the middle section you need to convert each byte to hex.
For the right section you need to convert each byte to ASCII.
Converting to hex is usually done using BitConverter.
Converting to ASCII is done using Encoding.ASCII.GetString().
I hope this helps,