언어/C#

ArraySegment

에린_1 2024. 7. 31. 09:53
728x90

ArraySegment

  • 배열(Array)의 특정 데이터를 참조할 수 있게 해주는 래퍼(Wrapper)이다.
  • 1차원 배열의 래퍼로 배열 내의 요소를 길이(범위)를 지정하여 구분한다.
  • 구분되어 있는 배열의 범위를 참조하기 때문에 사용할 때 새로운 배열을 만들지 않는다.
  • 배열의 일부만 나타내는 개체를 상대적으로 비용이 많이 드는 메서드 Copy를 호출하는 대신 메서드에 인수로 전달 ArraySegment 하여 배열의 일부 복사본을 전달할 수 있다.
  • 다중 스레드 앱에서 구조를 사용하여 각 스레드가 ArraySegment 배열의 일부에서만 작동하도록 할 수 있다.
  • ArraySegment는 불변(immutable) 구조체(struct)이기 때문에 내용을 변경할 수 없다.
    • 원본 배열을 보호하면서 배열의 일부를 참조하고자 할 때 유용하다.

Array와 ArraySegment의 차이점

  • 배열의 특정 위치에서 특정 크기만큼 참고하고 싶은 때 보통 새로 배열을 만든 후 복사해야 원하는 데이터만 참조할 수 있다.
  • ArraySegment를 사용하면 새로 배열을 만들지 않으면서 버퍼의 특정 데이터를 참조할 수 있다.
728x90

'언어 > C#' 카테고리의 다른 글

as/ is/ this/ base  (0) 2024.07.31
Interlocked  (0) 2024.07.31
Invoke & BeginInvoke  (0) 2024.07.31
ConcurrentQueue<T>  (0) 2024.07.31
Dispose  (0) 2024.07.31