Tôi có bộ đệm mảng byte có kích thước tối đa là 1K. Tôi muốn viết ra một tập hợp con của mảng (bắt đầu của tập hợp con sẽ luôn là phần tử 0, nhưng độ dài mà chúng ta quan tâm là trong một biến).Làm cách nào để có được một tập con của một mảng byte (các phần tử N đầu tiên) trong C#?
Ứng dụng ở đây là nén. Tôi vượt qua trong một bộ đệm để một chức năng nén. Để đơn giản, giả sử nén sẽ dẫn đến dữ liệu bằng hoặc nhỏ hơn 1K byte.
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?
}
Tôi thực sự muốn tránh một bản sao ở đây - có vẻ như hoàn toàn không cần thiết vì tất cả dữ liệu cần có trong số buffer
đã có.
Ồ, bạn đã giúp tôi với WCF trước đây (với tư cách người dùng khác). Cảm ơn một lần nữa cho lời khuyên Carlos +1. – jglouie