C#은 배열 슬라이싱으로 알려진 프로세스 인 바이트 어레이의 일부를 추출하는 효율적인 방법을 제공합니다. 이 기술은 불필요한 데이터 복사를 피하고 성능 향상을 피합니다.
arraysegment
arraysegment
클래스는 배열의 일부를 나타내는 가벼운 방법을 제공합니다. 새 배열을 만들지 않고 슬라이싱에 이상적입니다. 따라서 메모리를 보존합니다.
byte[] foo = new byte[4096];
var slice = new ArraySegment(foo, 0, 40);
이것은 slice
를 만듭니다.
ienumerable
슬라이스 배열을 통해 반복하려면
arraysegment ienumerable 를
asenumerable () Extension Method (.NET 3.5 및 나중에 사용할 수 있음)로
로 변환하십시오.
sliceAsenumerable
IEnumerable sliceAsEnumerable = slice.AsEnumerable();
또는 linq의 take () 메소드는 동일한 결과를 달성 할 수있는 간결한 방법을 제공합니다 :
이것은 또한
ienumerable
IEnumerable slicedBytes = foo.Take(40);
요약
c#은 메모리 효율을 위해
arraysegment 를 통해 유연한 배열 슬라이스를 제공하며, 간결한 코드의 경우 LINQ의
take ()
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3