Итак, я получаю данные через сокет, используя буфер (byte []) размером 1024, и я хочу объединить чтения вместе, чтобы сформировать весь пакет в случае, если они больше 1024 байтов. Я выбрал List для хранения всего пакета, и я хочу добавить к нему каждый прочитанный буфер по мере его поступления. Я хотел бы сделать:
List.AddRange(Buffer);
Но в случае, если буфер не заполнен, куча пустых байтов будет заполнена до конца. Поэтому, естественно, я бы хотел добавить в список только определенный диапазон байтов, но такого метода не существует. Я всегда мог создать временный байтовый массив с точным количеством полученных байтов, а затем использовать AddRange () и получить желаемый результат, но для меня это просто глупо. Не говоря уже о том, что это будет создавать, а затем выбрасывать массив при каждом чтении данных, что не будет хорошо для производительности на масштабируемом многопользовательском сервере.
Есть ли способ сделать это с помощью списка? Или есть какая-то другая структура данных, которую я могу использовать?