[C#] ArraySegment

자몽이·2025년 11월 23일

C# 문법

목록 보기
11/12
post-thumbnail

ArraySegment에 대해 알아보자



✅ ArraySegment란?

기존 배열의 일부분을 가리키는 값 타입 이다.
내부에서 배열을 복사하지 않고 원래 배열의 특정 offset 부터 count 만큼 연속된 요소를 참조한다.
메모리 복사 없이 배열의 일부만 전달하거나 처리할 때 유용하다.
값 타입인 struct 이고 얕은 참조를 한다.



기본 사용법


var arr = new int[] { 0,1,2,3,4,5,6,7,8,9 };

var seg = new ArraySegment<int>(arr, 2, 5); // arr[2] ~ arr[6] -> 2,3,4,5,6

var subarr = seg.Array; // 원본 배열의 참조를 얻는다.

Console.WriteLine(seg.Array == arr); // true
Console.WriteLine(seg.Offset); // 2
Consol.WriteLine(seg.Count); // 5


사용 사례


  • 큰배열에서 일부만 읽거나 쓰고 싶을 때 (복사 비용 회피)
  • 네트워크 통신, 파일 입출력, 대용량 데이터 처리 등 효율적인 메모리 관리를 위해 활용
  • 배열의 서브배열을 여러 곳으로 전달하지만 원본을 유지하고 싶을 때


profile
개발자가 되는 그 날 까지

0개의 댓글