C# предлагает эффективные методы для извлечения участков массивов байтов, процесс, известный как нарезка массива. Этот метод избегает ненужного копирования данных, повышения производительности.
] arraysegment
класс Arraysement
предоставляет легкий способ представить часть массива. Он идеально подходит для нарезки без создания нового массива, тем самым сохраняя память.
byte[] foo = new byte[4096];
var slice = new ArraySegment(foo, 0, 40);
]
это создает slice
, представляющий первые 40 байтов foo
.
ienumerable
для итерации через нарезанный массив, преобразуйте arraysegment
в ienumerable
, используя asenumerable ()
метод расширения (доступно в .net 3.5 и позже):
IEnumerable sliceAsEnumerable = slice.AsEnumerable();
sliceAseNumerable теперь позволяет легкую итерацию по выбранным байтам.
]
take () предлагает краткий способ достижения того же результата:
IEnumerable slicedBytes = foo.Take(40);
это также дает ienumerable , содержащий первые 40 байтов
foo .
arraysegment для эффективности памяти и Linq's
take () для краткого кода. Оба являются ценными инструментами для обработки сегментов массива, особенно в таких приложениях, как сетевое программирование, где эффективная манипуляция байтов имеет решающее значение.
]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3