Crear una matriz de bytes a partir de una secuencia

¿Cuál es el método preferido para crear una matriz de bytes a partir de una secuencia de entrada?

Aquí está mi solución actual con .NET 3.5.

Stream s;
byte[] b;

using (BinaryReader br = new BinaryReader(s))
{
    b = br.ReadBytes((int)s.Length);
}

¿Sigue siendo una mejor idea leer y escribir fragmentos de la secuencia?