언어/C#

[C#] Span이란?

돌멩이수프 2022. 6. 7. 13:03
728x90

ArraySegment와 비슷하게 Span도 배열의 일부를 가져오는 구조체다. ArraySegment보다 활용성이 더 높다.

 

static void Main(string[] args)
    {
        int[] arr = { 1, 2, 3, 4, 5 };
        int start = 0;
        int end = 3;

        Span<int> span = new Span<int>(arr, start, end);
        Console.WriteLine(span[2]);
    }

 

3이 성공적으로 출력된다. ArraySegment와 비슷하게 시작점과 길이를 정해줄 수 있다. 읽기 전용 메서드인 ReadOnlySpan도 있다. 수정 불가하니 더 안전하다. 

Span의 하위 집단을 가리키는 데에 Span.Slice를 활용할 수도 있다.

728x90