c#中读取十六进制文件的问题

小弟刚接触C#,作业上有个这样的问题,需要编一个程序:
读取一个dat格式的文件,打开以后是一组16进制的数,需要每次读取20字节进行分析。
我想要实现的是每次读取20字节写入byte数组进行分析,分析好了以后再清空byte数组,读下面20字节,如此循环。
请问各位大神该如何实现?

 IEnumerable<byte> bytes = File.ReadAllBytes("xxx.dat");
do
{
byte[] b20 = bytes.Take(20).ToArray();
你的分析代码
bytes = bytes.Skip(20);
} while (bytes.Count() != 0)