Tengo un búfer de matriz de bytes de tamaño máximo 1K. Quiero escribir un subconjunto de la matriz (el comienzo del subconjunto siempre será el elemento 0, pero la longitud que nos interesa es en una variable).¿Cómo obtengo eficientemente un subconjunto de una matriz de bytes (primeros N elementos) en C#?
La aplicación aquí es de compresión. Paso en un buffer a una función de compresión. Para simplificar, suponga que la compresión dará lugar a datos que son iguales o inferiores a 1K bytes.
byte[] buffer = new byte[1024];
while (true)
{
uncompressedData = GetNextUncompressedBlock();
int compressedLength = compress(buffer, uncompressedData);
// Here, compressedBuffer[0..compressedLength - 1] is what we're interested in
// There's a method now with signature Write(byte[] compressedData) that
// I won't be able to change. Short of allocating a custom sized buffer,
// and copying data into the custom sized buffer... is there any other
// technique I could use to only expose the data I want?
}
realmente me gustaría evitar una copia aquí - parece completamente innecesario ya que todos los datos necesarios es en buffer
ya.
Wow, me has ayudado con WCF antes (como un usuario diferente). Gracias de nuevo por el consejo Carlos +1. – jglouie