"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo implementar eficientemente la cortación de matriz en C#?

¿Cómo implementar eficientemente la cortación de matriz en C#?

Publicado el 2025-03-25
Navegar:137

How to Efficiently Implement Array Slicing in C#?

Mastering Array Spite en C#

C# ofrece métodos eficientes para extraer porciones de matrices de bytes, un proceso conocido como corte de matriz. Esta técnica evita la copia innecesaria de datos, mejorando el rendimiento.

Implementación de la cortación de matriz con ArraySegment

la clase arraysegment proporciona una forma ligera de representar una parte de una matriz. Es ideal para cortar sin crear una nueva matriz, conservando así la memoria.

byte[] foo = new byte[4096];
var slice = new ArraySegment(foo, 0, 40);

esto crea slice , representando los primeros 40 bytes de foo .

iterando con ienumerable

para iterar a través de la matriz cortada, convertir el arraysegment a un ienumerable usando el asenumerable () (disponible en .net 3.5 y más tarde):

IEnumerable sliceAsEnumerable = slice.AsEnumerable();

sliceasenumerable ahora permite una fácil iteración sobre los bytes seleccionados.

linq basado en corte

alternativamente, el método de Linq toke () ofrece una forma concisa de lograr el mismo resultado:

IEnumerable slicedBytes = foo.Take(40);

Esto también produce un ienumerable que contiene los primeros 40 bytes de foo .

Resumen

C# proporciona cortes de matriz flexibles a través de ArraySegment para la eficiencia de memoria y Linq's take () para el código conciso. Ambas son herramientas valiosas para manejar segmentos de matriz, particularmente en aplicaciones como la programación de redes donde la manipulación de bytes eficiente es crucial.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3